Java中存儲金額用什么數據類型


Java面試高頻問題:你會用什么數據類型來存儲金額?

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

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

  結果要多少,如果你覺得要0.1,那你就錯了。結果居然要0.09999999999999998。因為float與double都是浮點數,浮點數參與的運算通常伴隨着因為無法精確表示而進行的近似或舍入,所以導致結果會有絲毫的偏差,而涉及金額的計算是絕對不予許存在偏差的。

  第一種方法我們可以使用BigDecimal來表示金額。

  第二種方法就是數據庫里存分為單位的整型數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM