Проблемы с точностью BigDecimal в Java

Я знаю, что следующее поведение является старой проблемой, но все же я не понимаю.

System.out.println(0.1 + 0.1 + 0.1);    

Или даже если я использую BigDecimal

System.out.println(new BigDecimal(0.1).doubleValue()
    + new BigDecimal(0.1).doubleValue()
    + new BigDecimal(0.1).doubleValue());

Почему этот результат: 0,30000000000000004вместо: 0,3?

Как я могу это решить?

14
задан Andrew Thompson 20 March 2012 в 21:42
поделиться