關於php浮點數float以及int的問題
短摘:
PHP 官方提供的 BC Math Functions 可以解決相關的問題
例1:
echo 1000.1234567890123456789 * 1; //印出 1000.123456789 (位數不足)
echo bcmul('1000.1234567890123456789', '1', 19); //印出 1000.1234567890123456789 (位數要多少有多少)
例2:
echo (int)((0.1 + 0.7) * 10); //會印出 7 (錯誤)
echo (int)((bcadd('0.1', '0.7', 1)) * 10); //會印出 8 (正確)
//bcsub 是減法
No comments:
Post a Comment