1. 程式人生 > >java double型別加減運算時出現的精度丟失問題

java double型別加減運算時出現的精度丟失問題

問題由來:

今天在寫一個業務引數的時候,需要幾個數一起算一下最後返回一個浮點數。
一開始我就直接用強制型別轉化之後開始加加減減,後來發現總是會在末尾多出一些莫名的小數,這很明顯就是精度丟失問題,但是因為是要返回固定的資料型別,不能用Format轉成String來固定格式。

解決方案

最正確的做法應該是使用BigDecimal 來轉一下型別,這樣才是Effective Java 中的推薦方法,但是我有點偷懶,就直接把公式變形了一下,先做加減法(幾個int資料)再做除法,這樣也不再有精度丟失。