我有这样的BigDecimal定义:
private static final BigDecimal sd = new BigDecimal(0.7d);
Run Code Online (Sandbox Code Playgroud)
如果我打印它,我得到的价值:
0.6999999999999999555910790149937383830547332763671875
Run Code Online (Sandbox Code Playgroud)
这会导致一些错误的计算.有谁知道一种方式来获得的精确值0.7作为BigDecimal?将其更改为0.71查看正确的结果,但不应该是这样
使用字符串文字:
private static final BigDecimal sd = new BigDecimal("0.7");
Run Code Online (Sandbox Code Playgroud)
如果使用a double,实际上public BigDecimal(double val)是调用的.你没有得到0.7的原因是它不能完全由a表示double.有关更多信息,请参阅链接的JavaDoc.
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |