類型float的的計算不精確的問題
System.out.println(0.1f*0.1f);
得到0.0100001
不精確的原因:因爲計算機是用二進制存儲小數的,這個二進制不能精確表示0.1只能表示一個無限接近0.1的一個數,爲什麼0.1不能精卻表示因爲二進制使用2的多少次方
2^-1 0.5
2^-2 0.25
2^-3 0.125
2^-4 0.0625
所以進行計算的結果會出現不精確的情況,當誤差足夠小的時候就看上去是精確的,其實一般是不精確的
要保持精確用BigDecimal的類型,就是效率低