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.