我們都知道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+"");