Как получается, что Java BigDecimal
может быть таким болезненным?
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
Есть ли ситуации, когда результат 1 был бы желательным? Я знаю, что Java 1.5 изменила метод toString()
, но было ли это намеченным следствием?
Также я понимаю, что BigDecimal
имеет doubleValue()
и т. Д., Но библиотека, с которой я старательно работаю, использует toString()
, и я не могу это изменить: - (
Приветствие.