Manejo de cantidades en java
Publicado por Jds_soluteg (2 intervenciones) el 15/02/2016 21:24:33
HOLA,
Tengo una duda en una aplicación que programe que suma cantidades muy grandes pero el resultado me lo manda con números y letras este es el código que utilizo :
como ven el resultado casi se aserca al resultado = 423,248,041.67 el problema es que al parecer me redondea el resultado y lo que no puedo hacer es que no me los redondee y claro que me respete los decimales que son dos alguien me puede ayudar se los agradecería mucho .
Tengo una duda en una aplicación que programe que suma cantidades muy grandes pero el resultado me lo manda con números y letras este es el código que utilizo :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*****************************************************************/
String dato7;
String dato8;
String dato9;
dato7 = jTextField1.getText();
float tot1 = Float.parseFloat(dato7);
dato8 = jTextField2.getText();
float tot2 = Float.parseFloat(dato8);
dato9 = jTextField3.getText();
float tot3 = Float.parseFloat(dato9);
float resultado = tot1 + tot2+tot3;
String dif4 = String.valueOf(resultado);
jTextField4.setText(dif4);
/*******************************************************************/
jTextField1= 154,345,013.20
jTextField2= 156,071,099.71
jTextField3= 112,831,975.58
resultado= 4.23248064E8 // resultado mal
como ben el resultado esta mal tendría que ser resultado = 423,248,041.67
este codigo es con flotantes también utilice bigDecimal con este codigo:
/******************************************************************************/
String dato7;
String dato8;
String dato9;
dato7 = jTextField1.getText();
float tot1 = Float.parseFloat(dato7);
dato8 = jTextField2.getText();
float tot2 = Float.parseFloat(dato8);
dato9 = jTextField3.getText();
BigDecimal Valor1 = new BigDecimal(tot1);
BigDecimal Valor2 = new BigDecimal(tot2);
BigDecimal Valor3 = new BigDecimal(tot3);
Valor2 = Valor2.add(Valor1.setScale(2)).add(Valor3.setScale(2));
String dif4 = String.valueOf(Valor2.setScale(2));
jTextField4.setText(dif4);
/*****************************************************************************/
jTextField1= 154,345,013.20
jTextField2= 156,071,099.71
jTextField3= 112,831,975.58
resultado = 423,248,040.00 //resultado mal
Valora esta pregunta


0