为什么intval舍入结果呢?

时间:2017-07-13 03:09:30

标签: php

$price = "19.65";
echo intval($price * 100); // 1964
echo  $price * 100; // 1965

我尝试格式化价格金额,但我发现上述解决方案有不同的结果,任何想法为什么?

1 个答案:

答案 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