Foros del Web » Programación para mayores de 30 ;) » Java »

clase BigDecimal

Estas en el tema de clase BigDecimal en el foro de Java en Foros del Web. BigDecimal unCentavo = new BigDecimal("0.01"); BigDecimal suma = unCentavo.add(unCentavo).add(unCentavo).add(unCent avo).add(unCentavo).add(unCentavo); System.out.println("resultado " + suma); porque devuelve 0.06 o sea el resultado correcto con un parametro ...
  #1 (permalink)  
Antiguo 22/03/2013, 08:30
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
clase BigDecimal

BigDecimal unCentavo = new BigDecimal("0.01");
BigDecimal suma = unCentavo.add(unCentavo).add(unCentavo).add(unCent avo).add(unCentavo).add(unCentavo);
System.out.println("resultado " + suma);

porque devuelve 0.06 o sea el resultado correcto con un parametro String("0.01") pero cuando le paso un double(0.01) devuelve
0.060000000000000001249000902703301107976585626602 17285156250


Gracias.
  #2 (permalink)  
Antiguo 22/03/2013, 14:24
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: clase BigDecimal

El double arrastra problemas de imprecisión. Por eso precisamente se usa bigdecimal. Evita los parseos o constructores con doubles. Usa mejor Strings.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.