MVC dando formato a los números con Number Format y Decimal Format
Cuando se realizan operación con números
en ocasiones el resultado tienen un número muy grande de decimales, lo que genera
que su lectura sea difícil por ejemplo:
10/3 = 3.333333333333333333333333333333333
Para este caso se puede utilizar las
clases Number Format y Decimal Format, como se muestra en el
siguiente ejemplo.
1.- Crear un nuevo proyecto donde
con los siguientes packages y las
siguientes clases:
2.- Crear una interfaz gráfica similar
a la siguiente:
3.- Renombrar los componentes
como se muestra en la siguiente imagen:
4.- Dentro de la clase modelo se
crearan los métodos para dar formato a un número utilizando un objeto de tipo
Number Format
private NumberFormat df =
new DecimalFormat("#0.00"); //creación del objeto df
df.format(3.3333333333333333);
//formateo de los numeros
Regresara el valor: 3.33
Código de la clase modelo
package model;
import
java.text.DecimalFormat;
import
java.text.NumberFormat;
public class modelo {
private double numero1=2.6;
private double numero2=8.4;
private NumberFormat df = new
DecimalFormat("#0.00");
public double getNumero1() {
return numero1;
}
public void setNumero1(double numero1) {
this.numero1 = numero1;
}
public double getNumero2() {
return numero2;
}
public void setNumero2(double numero2) {
this.numero2 = numero2;
}
public String suma()
{
return
df.format(this.numero1+this.numero2);
}
public String resta()
{
return
df.format(this.numero1-this.numero2);
}
public String multiplicacion()
{
return
df.format(this.numero1*this.numero2);
}
public String division()
{
return
df.format(this.numero1/this.numero2);
}
}
5.- Clase Constructor
package controller;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import model.modelo;
import view.vista;
public class controlador
implements ActionListener {
private vista objVista;
private modelo objModelo;
public controlador(vista objVista, modelo
objModelo) {
this.objVista = objVista;
this.objModelo = objModelo;
this.objVista.jb_suma.addActionListener(this);
this.objVista.jb_resta.addActionListener(this);
this.objVista.jb_multiplicacion.addActionListener(this);
this.objVista.jb_division.addActionListener(this);
}//controlador
public void actionPerformed(ActionEvent
componente) {
if (componente.getSource() ==
this.objVista.jb_suma) {
metodoSuma();
} else if (componente.getSource() ==
this.objVista.jb_resta) {
metodoResta();
} else if (componente.getSource() ==
this.objVista.jb_multiplicacion) {
metodoMultiplicacion();
} else if (componente.getSource() ==
this.objVista.jb_division) {
metodoDivision();
}
}
public void iniciar_vista() {
objVista.setTitle("Calculadora");
objVista.setLocationRelativeTo(null);
objVista.jtf_numero1.setText("" + objModelo.getNumero1());
objVista.jtf_numero2.setText(""
+ objModelo.getNumero2());
}//iniciar_vista
private void metodoSuma() {
objModelo.setNumero1(Double.parseDouble(objVista.jtf_numero1.getText()));
objModelo.setNumero2(Double.parseDouble(objVista.jtf_numero2.getText()));
objVista.jtf_resultado.setText("" + objModelo.suma());
}
private void metodoResta() {
objModelo.setNumero1(Double.parseDouble(objVista.jtf_numero1.getText()));
objModelo.setNumero2(Double.parseDouble(objVista.jtf_numero2.getText()));
objVista.jtf_resultado.setText("" + objModelo.resta());
}
private void metodoMultiplicacion() {
objModelo.setNumero1(Double.parseDouble(objVista.jtf_numero1.getText()));
objModelo.setNumero2(Double.parseDouble(objVista.jtf_numero2.getText()));
objVista.jtf_resultado.setText("" +
objModelo.multiplicacion());
}
private void metodoDivision() {
objModelo.setNumero1(Double.parseDouble(objVista.jtf_numero1.getText()));
objModelo.setNumero2(Double.parseDouble(objVista.jtf_numero2.getText()));
objVista.jtf_resultado.setText("" + objModelo.division());
}
}
6.- Clase Main
package mvc_dos;
import
controller.controlador;
import model.modelo;
import view.vista;
public class Main {
public static void main(String sax[])
{
modelo objModelo = new modelo();
vista objVista = new vista();
controlador controlador = new
controlador( objVista , objModelo );
controlador.iniciar_vista();
objVista.setVisible(true);
}
}
7.- Al
ejecutar la aplicación el resultado de una división saldría limitado a dos
decimales.
Comentarios