JoJ*_*oJo 4 java contains bigdecimal
在JAVA中读取列表时,我们可以使用.contains(BigDecimal.ZERO)吗?
我在尝试:
if (selectPriceList.contains(BigDecimal.ZERO)) {
return true;
}
return false;
Run Code Online (Sandbox Code Playgroud)
但它总是返回错误.
这似乎有效,但需要纠正吗?
BigDecimal zeroDollarValue = new BigDecimal("0.0000");
if (selectPriceList.contains(zeroDollarValue)) {
return true;
}
return false;
Run Code Online (Sandbox Code Playgroud)
出现此问题的原因是scale,小数点右边的位数BigDecimal.ZERO设置为0,而scaleof zeroDollarValue为4.
equals方法BigDecimal比较scale和value - 如果两者不同,则返回false.
你可以使用
return selectPriceList.contains(BigDecimal.ZERO.setScale(4));
Run Code Online (Sandbox Code Playgroud)
假设您的所有价格都是小数点后四位.如果没有,您可能必须使用
for(BigDecimal bd : selectPriceList) {
if(bd.compareTo(BigDecimal.ZERO) == 0) {
return true;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅文档.
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |