为什么
<?php echo 194.95-194.94; ?>
输出
0.0099999999999909
我在这里想念什么?这是 php 5.2。
为什么
<?php echo 194.95-194.94; ?>
输出
0.0099999999999909
我在这里想念什么?这是 php 5.2。
问题是你不能用浮点数精确地表示 0.01。
看看每个程序员应该了解的关于浮点的知识,以很好地解释为什么会这样,以及如何处理它。
虽然 Mark 的回答没问题,但您可能仍然想知道为什么会得到您的答案。例如,尝试
<?php echo 0.01; ?>
PHP 愉快地打印0.01
.
在您的情况下194.95
,两者都以可容纳在 IEEE 754 中的二进制形式存储,并且它们的差异与可以“正确”呈现的基本内容194.94
相差太远。0.01
在http://babbage.cs.qc.edu/IEEE-754/Decimal.html等在线计算器上试用您的示例。应该很有趣。