float 及 double 主要為了科學計算和工程計算,它們執行二進制浮點運算,並不是完全精確的運算,所以不適合用於貨幣計算。解決問題的正確方法是用 BigDecimal、int 或是 long 進行貨幣計算,然而使用 BigDecimal 會有兩個缺點,與基本運算類型相比較不方便,速度慢,但好處是可以自由選擇四捨五入的機制。另一種辦法就是使用 int 或是 long,如果數字沒有超過 9 位數的十進制數字,可以使用 int,如果數字沒有超過 18 位數,就可以使用 long。
浮點數轉載請註明原文網址 https://cookieandcoketw.blogspot.com/2021/03/effective-java-60-float-double.html
https://zh.wikipedia.org/wiki/%E6%B5%AE%E7%82%B9%E6%95%B0
沒有留言:
張貼留言