- 不要用浮點數進行比較和數學運算轉化為整型運算
var_dump((0.1 + 0.7) == 0.8);//boolean false
var_dump((0.1 + 0.7) * 10 == 0.8 * 10);//boolean false
var_dump((0.1 + 0.7) * 100 == 0.8 * 100);//boolean true
echo intval(0.58 * 100);//57
echo intval(0.58 * 1000);//580
- 試用bcmath庫(php自帶)
var_dump(bcadd(0.1, 0.7, 1) == 0.8);//boolean true
bcadd — 將兩個高精度數字相加
bccomp — 比較兩個高精度數字,返回-1, 0, 1
bcdiv — 將兩個高精度數字相除
bcmod — 求高精度數字余數
bcmul — 將兩個高精度數字相乘
bcpow — 求高精度數字乘方
bcpowmod — 求高精度數字乘方求模,數論里非常常用
bcscale — 配置默認小數點位數,相當于就是Linux bc中的”scale=”
bcsqrt — 求高精度數字平方根
bcsub — 將兩個高精度數字相減