【发布时间】:2015-12-01 08:35:10
【问题描述】:
这是我在 PHP 中见过的最愚蠢的行为。
$num = 4400 / 1.1;
echo doubleval($num); // prints 4000
echo intval($num); // prints 3999
为什么会发生这种情况以及如何解决?
【问题讨论】:
-
您期望什么样的答案:深入比较 intval 的内部工作原理和隐式转换为字符串,包括浮点/双精度的 IEEE 754 表示和 C 标准的规则打印双精度库时,为什么 php 开发人员不关心它或者如何(以及何时)处理这些事情(通常或针对这种特殊情况)?
-
顺便说一句:因为您对 javascript 标签有一些看法:jsfiddle.net/9e4ssjmj ;-)