$price = "19.65";
echo intval($price * 100); // 1964
echo $price * 100; // 1965
我嘗試格式化價格數量,但是我發現上面的解決方案有不同的結果,有什麼想法爲什麼?爲什麼intval會降低結果?
$price = "19.65";
echo intval($price * 100); // 1964
echo $price * 100; // 1965
我嘗試格式化價格數量,但是我發現上面的解決方案有不同的結果,有什麼想法爲什麼?爲什麼intval會降低結果?
似乎是一個浮點問題。這是從php.net手冊,
看到http://php.net/manual/en/function.intval.php#101439
看到http://php.net/manual/en/function.intval.php#112039
不要使用INTVAL()當你真的想圓()。這是由於PHP如何處理精度。
$n="19.99";
print intval($n*100); // prints 1998
print intval(strval($n*100)); // prints 1999
的[是浮點運算壞了嗎?](https://stackoverflow.com/questions/588004/is-floating-point-math-broken) –