1.計算偏差spa
浮點的精度是可變的,除非分數是2的整數冪次方,否者沒法用有限的二進制小數表示。ci
即 0.1 分母爲10, 則分數應該是2的3次方至2的4次方之間,具體是多少我也算不出來了···。即這個次方數會爲一個特別長的小數,在有限的長度中沒法體現出來。二進制
則0.1會被表示爲一個十分接近0.1的值,如0.1000000000000000001 或0.099999999999999999float
因此在精確的計算中,使用浮點類型會形成計算的偏差。im
使用decimal能夠解決此問題,不過decimal的範圍比浮點類型來講相對較小,因此在將浮點類型轉換成decimal類型時,有溢出的風險。類型轉換
2.判斷偏差
基於上述解釋
float num1=0.1F;
decimal num2=0.1M;
則 num1!=num2;