Friday, August 28, 2015

[PHP][好文] 關於php浮點數float以及int的問題

關於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