2

为什么减去并拢号

<?php echo 194.95-194.94; ?>

输出

0.0099999999999909 

缺少什么我在这里?这是PHP 5.2。

+0

可能重复的[PHP的float精度计算](http://stackoverflow.com/questions/3957705/the-accuracy-of-php-float-calculate) – hakre

回答

3

虽然马克的回答是好的,但它仍然可能让你想知道为什么你得到了你所做的答案。例如,尝试

<?php echo 0.01; ?> 

PHP愉快地打印0.01

在你的情况194.95194.94均被存储在作为近距一个二进制形式为可容纳在IEEE 754,它们的区别是太远离基本0.01可以呈现“正常”。

尝试使用在线计算器(例如http://babbage.cs.qc.edu/IEEE-754/Decimal.html)的示例。应该很有趣。