use*_*969 4 java double bigdecimal
我正在使用返回双精度值的 API。我需要将该值与 BigDecimal 值进行比较,以便相等于两位小数。
我应该将 BigDecimal 转换为 double 然后比较
Math.abs(myBigDecimal.doubleValue() - apiDouble) >= .01
Run Code Online (Sandbox Code Playgroud)
或者这种方法有问题吗?也许我应该将 double 转换为 BigDecimal 然后进行比较?
不可以。尽管 IEEE double 具有保护位,但它不能准确表示十进制值。使用舍入将 double 转换为 BigDecimal,然后使用 compareTo()。请注意,equals() 考虑了小数位,因此 compareTo() 更安全。您可能还需要舍入 BigDecimal。
| 归档时间: |
|
| 查看次数: |
5616 次 |
| 最近记录: |