出现精度丢失的场景有如下情况:
- double/float 之间做运算
- 采用BigDecimal的构造方法
解决方案:
- 通过 BigDecimal.valueOf的静态方法转化double/float数值,然后再运算;
- 如果要用BigDecimal的构造方法,请使用new BigDecimal(String val);
如:new BigDecimal(Double.toString(0.1));
出现精度丢失的场景有如下情况:
解决方案:
如:new BigDecimal(Double.toString(0.1));