首页 > 解决方案 > 我尝试了`intval(6.02 * 100)`,结果是602,但是为什么`intval(5.02 * 100)`的结果是501呢?

问题描述

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

标签: php

解决方案


这是一个浮点数学问题。以下可能有助于解释它:

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?


推荐阅读