“Novo BigDecimal (13.3D)” resulta em imprecisos “13.3000000000000007105 ..”?
Como é que o JavaBigDecimal
pode ser tão doloroso?
Double d = 13.3D;
BigDecimal bd1 = new BigDecimal(d);
BigDecimal bd2 = new BigDecimal(String.valueOf(d));
System.out.println("RESULT 1: "+bd1.toString());
System.out.println("RESULT 2: "+bd2.toString());
RESULT 1: 13.300000000000000710542735760100185871124267578125
RESULT 2: 13.3
Existe alguma situação em que o resultado 1 seria desejado? Eu sei que o Java 1.5 mudou otoString()
método, mas essa foi a conseqüência pretendida?
Também percebo queBigDecimal
temdoubleValue()
etc, mas a biblioteca com a qual estou trabalhando utiliza umtoString()
e não posso mudar isso :-(
Felicidades.