@、运用BigDecimal处理Double类型的算术运算的精度问题
原文:https://blog.csdn.net/j754379117/article/details/52238396
可使用 BigDecimal.valueOf(Double val) 或者 new BigDecimal(Double.toString(Double val)) 的方式将Double类型转换成BigDecimal类型,然后利用BigDecimal对象的成员方法进行算术运算。
@、使用ROUND_HALF_UP进行四舍五入
如果直接使用new BigDecimal(double)来转换double类型的数据,可能无法成功的四舍五入。需要使用使用 BigDecimal.valueOf(Double val) 或者 new BigDecimal(Double.toString(Double val)) 的方式将Double类型转换成BigDecimal类型。
原文:https://www.jianshu.com/p/4737a066d93e
@、BigDecimal比较
如果只是比较数值是否相等,可用 bigVal1.compareTo(bigVal2) == 0 来判断;
如果既要比较数值是否相等又要比较精度,可用 bigVal1.equals(bigVal2) 来判断。