1. 程式人生 > 實用技巧 >Java中儲存金額用什麼資料型別

Java中儲存金額用什麼資料型別

Java面試高頻問題:你會用什麼資料型別來儲存金額?

如果這個時候你回答float,double那麼恭喜你,又可以省出時間來準備別的公司的面試了,當面試官說float,和double不行的時候你可能還一臉懵逼,為啥不行?那麼請看下面的例子

public class Test {
    public static void main(String[] args) {
        double a=0.03;
        double b=0.02;
        double c=a-b;
        System.out.println(c);
        
    }
}

結果會列印多少,大部分人肯定都在想結果肯定是0.01啊!如果覺得結果是0.01的同學可以動手在編輯器上實現並執行一下你會驚奇的發現結果居然是0.009999999999999998,因為float與double都是浮點數,浮點數參與的運算通常伴隨著因為無法精確表示而進行的近似或舍入,所以導致結果會有絲毫的偏差,而涉及金額的計算是絕對不予許存在偏差的。

我們可以使用BigDecimal來表示金額,或者是通過將金額的單位變小用整數來表示金額。