(intval(floatval(“18.99”)* 100))? 18.98

时间:2015-12-05 22:26:31

标签: php

为什么下面的代码给出了这个答案,而不是1899,我该如何解决?

echo (intval(floatval("18.99") * 100));
回答1898年 但是

echo (intval(floatval(18.99) * 100));

是1899年

那么我们如何修复下面的代码

$a = "18.99";
echo (intval((floatval($a) * 100)));

,答案变为1899

2 个答案:

答案 0 :(得分:1)

众所周知的问题。 http://php.net/manual/function.intval.php#7707 快速解决方案:

echo (intval(strval(floatval("18.99") * 100)));

答案 1 :(得分:1)

2个十进制数的解决方案

使用

echo (ceil(floatval("18.99") * 100))."<br/>";