Die*_*ego 5 java double bigdecimal
我试图从字符串中创建一个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());
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出?
The Double: 0.3
The Big: 0.299999999999999988897769753748434595763683319091796875
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jim*_*son 12
创建double时,无法准确表示值0.3.您可以从没有中间双精度的字符串创建BigDecimal,如
new BigDecimal("0.3")
Run Code Online (Sandbox Code Playgroud)
浮点数表示为二进制分数和指数.因此,有一些数字无法准确表示.在基数10中存在类似的问题,其数字如1/3,即0.333333333 .....任何1/3的十进制表示都是不精确的.这发生在二进制的一组不同分数中,而0.3是二进制中不精确的集合之一.
| 归档时间: |
|
| 查看次数: |
3031 次 |
| 最近记录: |