Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2012, 12:35
refreegrata
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 16 años, 5 meses
Puntos: 27
Nuevo en Java, Aproximación de valores.

Hola foreros. Tengo una duda. Recién estoy comenzando a aprender Java y hay algo que no logro comprender. Quero aproximar un BigDecimal:
Código:
BigDecimal valor = new BigDecimal(1.705);
BigDecimal valorAproximado = valor.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(valorAproximado);
La aproximación de "1.705" a 2 decimales es 1.71

Sin embargo si hago esto:
Código:
BigDecimal valor = new BigDecimal(0.705);
BigDecimal valorAproximado = valor.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(valorAproximado);
Me imprime 0.70

¿Por qué no me imprime 0.71? ¿Es esta la manera correcta de aproximar si manejar valor exactos (dinero)?

Gracias por leer.

P.D.: Estoy trabajando sobre java 6.