“new BigDecimal(13.3D)”导致不精确的“13.300000000000000007105..”?
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()
干杯。