我正在尝试从字符串创建 BigDecimal。别问我为什么,我就是需要!这是我的代码:
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
有任何想法吗?
当您创建双精度型时,无法准确表示值 0.3。您可以从没有中间双精度的字符串创建 BigDecimal,如下所示
new BigDecimal("0.3")
浮点数表示为二进制分数和指数。因此,有些数字无法准确表示。在以 10 为基数的数字中也存在类似的问题,例如 1/3,即 0.333333333..... 1/3 的任何十进制表示都是不精确的。这种情况发生在二进制分数的不同集合中,0.3 是二进制中不精确的分数集合之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)