echo intval(0.58*100);//結果爲57
echo intval((0.1 + 0.7) * 10);//結果爲7
產生這樣的原因是計算機內部對部分浮點數不能準確地用二進制表示,就像我們不能用十進制準確表示10/3一樣.
所以對於浮點數來計算金額這些敏感的數據,推薦使用PHP的BC函數
BCMath 任意精度數學
bcadd — 2個任意精度數字的加法計算
bccomp — 比較兩個任意精度的數字
bcdiv — 2個任意精度的數字除法計算
bcmod — 對一個任意精度數字取模
bcmul — 2個任意精度數字乘法計算
bcpow — 任意精度數字的乘方
bcpowmod — Raise an arbitrary precision number to another, reduced by a specified modulus
bcscale — 設置所有bc數學函數的默認小數點保留位數
bcsqrt — 任意精度數字的二次方根
bcsub — 2個任意精度數字的減法