我想从一个字符串做一个BigDecimal。不要问我为什么,我只是需要它!这是我的代码:BigDecimal from Double的值不正确?
Double theDouble = new Double(".3");
System.out.println("The Double: " + theDouble.toString());
BigDecimal theBigDecimal = new BigDecimal(theDouble);
System.out.println("The Big: " + theBigDecimal.toString());
这是我得到的输出?
The Double: 0.3
The Big: 0.299999999999999988897769753748434595763683319091796875
任何想法?
为什么不能它是repres完全是一个双? – Diego 2010-09-11 23:06:30
@Diego:即使不是最常见的SO问题,至少在前五名中也是如此。虽然这需要一点时间才能理解。阅读[每个计算机科学家应该知道什么关于浮点运算](http://docs.sun.com/source/806-3568/ncg_goldberg.html) – 2010-09-11 23:08:00
@Michael Petrotta好的谢谢! – Diego 2010-09-11 23:10:27