当前位置:  开发笔记 > 编程语言 > 正文

BigDecimal stripTrailingZeros不适用于零

如何解决《BigDecimalstripTrailingZeros不适用于零》经验,为你挑选了1个好方法。

我在代码中遇到了奇怪的错误.

它涉及到

new BigDecimal("1.2300").stripTrailingZeros() 

返回1.23(正确)

new BigDecimal("0.0000").stripTrailingZeros() 

返回0.0000(奇怪),因此没有任何反应

为什么?

怎么解决?



1> Yuri..:

似乎这是一个错误.但它在Java 8中得到修复.修复的直接URL .

有解决方法:

BigDecimal zero = BigDecimal.ZERO;
if (someBigDecimal.compareTo(zero) == 0) {
    someBigDecimal = zero;
} else {
    someBigDecimal = someBigDecimal.stripTrailingZeros();
}

请参阅此链接.

霍尔格在评论中也是一个好点

不要浪费资源创建自己的零实例.使用BigDecimal.ZERO.


不要浪费资源创建自己的零实例.使用[`BigDecimal.ZERO`](http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html#ZERO)
@gstackoverflow我已经更新了答案:)
@JordiCastilla OP询问标准库函数的意外行为,Yuri提供了一个答案,消息来源它是标准库中的一个错误.这怎么不是答案?
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有