例如:
金額的資料類型是BigDecimal
通過BigDecimal的divide方法進行除法時當不整除,出現無限循環小數時,就會抛異常的。
異常如下:
應用場景:一批中供客戶的單價是1000元/年,如果按月計算的話1000/12=83.3333333333....
解決之道:就是給divide設定精确的小數點divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)
在 java中, 四舍五入通過 BigDecimal 來實作。一定要注意:BigDecimal is Immutable。也就是跟String一樣,對前一個的修改,比如setScale(), add()等都會傳回一個新的BigDecimal.四舍五入舍入模式是 BigDecimal.ROUND_HALF_UP
下面貼上一張圖:

舉例說明: