Java - BigDecimal con operadores aritmeticos y logicos

 
Vista:

BigDecimal con operadores aritmeticos y logicos

Publicado por Danilo Juvinao (278 intervenciones) el 05/10/2006 00:24:47
Tengo una aplicacion en la cual manejo los datos con tipo double, pero me falla en la precision cuando tengo una operacion que contiene demasiados decimales. entonces debo usar BigDecimal pero las diferencias al usar uno y otro son monumentales.
con tipo double puedo hacer:
double x=1,y=2,z=3;
double resultado = (x+y+z)*(x+y+z)

esto mismo con bigdecimal es:
Bigdecimal x = new Bigdecimal("1");
Bigdecimal y = new Bigdecimal("2");
Bigdecimal z = new Bigdecimal("3");
BigDecimal resultado = (x.add(y).add(z)).multiply((x.add(y).add(z));

esto solo por poner un ejemplo

con double lo siguiente es facil:
if (x>y)
System.out.println("HOLA");

con bigdecimal seria asi
if (x.compareTo(y)==1)
System.out.println("HOLA");

NECESITO POR FAVOR, SABER LA MANERA DE PODER MANEJAR BIGDECIMAL OPERADORES ARITMETICOS (+ - * /) Y LOGICOS (< = >)

SI ALGUIEN SABE ESPERO QUE ME AYUDEN Y SE LOS AGRADEZCO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:BigDecimal con operadores aritmeticos y logicos

Publicado por Isai (95 intervenciones) el 05/10/2006 00:42:07
Pues redondea los numeros para no manejar tantos decimales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BigDecimal con operadores aritmeticos y logicos

Publicado por Danilo Juvinao (278 intervenciones) el 05/10/2006 16:16:52
En aplicaciones contables REALES eso no se puede hacer porque los calculos nunca dan lo mismo. Los redondeos se hacen solamente para mostrar los datos al usuario del sistema y en los reportes.

Gracias de todas maneras. Si tienes alguna otra sugerencia... estare presto a tenerla en cuenta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:BigDecimal con operadores aritmeticos y logicos

Publicado por Juan Sebastian Arbona (1 intervención) el 18/12/2006 16:34:26
El error relativo de la representacion de numeros en Java, es muy pequeño por lo que con un ADECUADO metodo de redondeo lo solucionarias, de hecho las calculadoras que usan los contadores redondean todo el tiempo porque tienen el mismo problema es mas su error relativo es mas grande que el de Java, la mayoria de los lenguajes de programacion tambien lo tienen y tambien lo resuelven de la misma manera.

BigDecimal es demasiado para una aplicacion contable.

Para mas informacion consulta:

http://jroller.com/page/javillion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar