我们都知道BigDecimal可以精确计算避免精度损失,这里记录一下BigDecima出现精度损失的情况,
使用BigDecimal(Double value)构造BigDecimal对象时,
因为double本身就无法精确的表示某些小数,
导致其传入的本就不是一个准确的数,
所以构造方法也没办法把你构造一个准确表示该浮点数的BigDecimal对象.
并不是BigDecimal丢失精度,而是本身就有可能在构造时传入一个无法确定表示的浮点数。
在使用BigDecimal时,建议使用new BigDecimal(String value)或者
new BigDecimal.valueOf(Double value)来构造BigDecimal对象。
习惯这样用
BigDecimal all = new BigDecimal(tryOutNumByRegion+"");