$price = "19.65";
echo intval($price * 100); // 1964
echo $price * 100; // 1965
我尝试格式化价格金额,但我发现上述解决方案有不同的结果,任何想法为什么?
答案 0 :(得分:1)
似乎是一个浮点问题。这是来自php.net手册页,
请参阅http://php.net/manual/en/function.intval.php#101439
请参阅http://php.net/manual/en/function.intval.php#112039
当你真的想要round()时,不要使用intval()。这是由于如何 PHP处理精度。
$n="19.99";
print intval($n*100); // prints 1998
print intval(strval($n*100)); // prints 1999