Con*_*Del 4 java floating-point junit bigdecimal
我有两个BigDecimals Actual和Budgeted.我将实际按预算划分为百分比.
我遇到的问题是,当我正在构建一些单元测试时,我试图确认生成的BigDecimal是.1但是当尝试等于(new BigDecimal(.1))时,由于双精度问题而失败.
我想要克服这个问题的方法是创建两个BigDecimals - 十个和一个,将这两个分开并用它来测试.这样,我只使用定点数,我的计算应该完全正确.
所以我的问题是:有更好的方法吗?
使用BigDecimal时,您应该使用compareTo方法而不是equals方法进行"数字相等"测试:
if (bigDecimal1.compareTo(bigDecimal2) == 0) { //then they are equals
Run Code Online (Sandbox Code Playgroud)
比照 javadoc了解更多信息.
正如其他人所提到的,你应该使用字符串构造函数来避免舍入问题.
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |