PHP intval未按预期运行

PHP intval未按预期运行,php,int,type-conversion,php-7,Php,Int,Type Conversion,Php 7,在PHP7.0中,我使用intval发出了一个奇怪的行为 似乎在浮点数计算返回错误值后使用intval 下面是一个例子: echo intval(920); // This prints 920 as expected echo intval(9.2 * 100); // this prints 919!!! 可能我误解了intval的正确用法 有人能解释一下为什么会发生这种情况吗?你能试试这个吗: (int)(9.2 * 10) 或 请参见下面的示例,这来自 这是因为9.2已转换为浮点。由

在PHP7.0中,我使用intval发出了一个奇怪的行为

似乎在浮点数计算返回错误值后使用
intval

下面是一个例子:

echo intval(920); // This prints 920 as expected
echo intval(9.2 * 100); // this prints 919!!!
可能我误解了
intval
的正确用法


有人能解释一下为什么会发生这种情况吗?

你能试试这个吗:

(int)(9.2 * 10)

请参见下面的示例,这来自


这是因为9.2已转换为浮点。由于精度有限,浮点值可能为9.19999999999999,低于9.2。919.99999999999的整数部分是919。同一问题<代码>回声((int)(9.2*100))给出9.19:(如果第二个解决方案不适合您,请告诉我。
$n="19.99";
print intval($n*100); // prints 1998
print intval(strval($n*100)); // prints 1999