我尝试`intval(6.02 * 100)`,结果是602,但是为什么`intval(5.02 * 100)`的结果是501?

时间:2018-10-29 03:31:58

标签: php

我尝试intval(6.02 * 100),结果是602。但是为什么intval(5.02 * 100)的结果是501?

1 个答案:

答案 0 :(得分:3)

这是一个浮点数学问题。以下内容可能有助于对其进行解释:

ini_set('precision', 17);
echo (float)5.02;
  

5.0199999999999996

echo 5.02 * 100;
  

501.99999999999994

echo intval(501.99999999999994);
  

501

有关此主题的更多讨论: php intval() and floor() return value that is too low?