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都是浮點數,浮點數參與的運算通常伴隨着因為無法精確表示而進行的近似或舍入,所以導致結果會有絲毫的偏差,而涉及金額的計算是絕對不予許存在偏差的。
