3
可能重复:
'for' loop and typecasting hell ! (PHP)
PHP Math PrecisionPHP用于与<=环是不稳定的
for ($x=0; $x<=1; $x+=.1) echo("-$x");
echo("<br>");
for ($x=0; $x<=1; $x+=.05) echo("-$x");
输出:
-0-0.1-0.2-0.3-0.4-0.5-0.6-0.7-0.8-0.9-1
-0-0.05-0.1-0.15-0.2-0.25-0.3-0.35-0.4-0.45-0.5-0.55-0.6-0.65-0.7-0.75-0.8-0.85-0.9-0.95`
的音响第一个循环按预期输出1。
第二环路退出时x==1
,它不输出1作为预期
它与一些步骤增量等0.125,0.025,0.25,等,但不与像0.01其他值, .02,.002等
我从来没有注意过,现在我不得不使用while循环来解决它。有人知道那里发生了什么吗?我在php版本5.3.8和5.2.11中找到它。
http://floating-point-gui.de/或简而言之:不要依赖浮动来比较平等。 – KingCrunch 2012-07-06 20:22:45
看看这个:http://stackoverflow.com/a/1316184/96603 – eWolf 2012-07-06 20:23:13
嘿,这是快速和有益的,谢谢...,我想这就排除了使用while循环和相同的比较,甚至虽然一个while循环似乎按预期工作,这是在KingCrunch提供的链接上的一个很好的解释,再次感谢... – user1507667 2012-07-06 20:31:23