我在代码中遇到了奇怪的错误.
它涉及到
new BigDecimal("1.2300").stripTrailingZeros()
Run Code Online (Sandbox Code Playgroud)
返回1.23(正确)
但
new BigDecimal("0.0000").stripTrailingZeros()
Run Code Online (Sandbox Code Playgroud)
返回0.0000(奇怪),因此没有任何反应
为什么?
怎么解决?
Yur*_*uri 13
似乎这是一个错误.但它在Java 8中得到修复.修复的直接URL .
有解决方法:
BigDecimal zero = BigDecimal.ZERO;
if (someBigDecimal.compareTo(zero) == 0) {
someBigDecimal = zero;
} else {
someBigDecimal = someBigDecimal.stripTrailingZeros();
}
Run Code Online (Sandbox Code Playgroud)
请参阅此链接.
霍尔格在评论中也是一个好点
不要浪费资源创建自己的零实例.使用BigDecimal.ZERO.
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |