Home  >  Article  >  Backend Development  >  PHP for循环小数出现的问题

PHP for循环小数出现的问题

WBOY
WBOYOriginal
2016-06-23 14:00:442096browse

for ($i=81.3; $i <99.4; $i+=99.3) {     echo $i."<br />";}


如上打印结果到了90的时候不正常了,
新手求教,急~~~


回复讨论(解决方案)

for ($i=81.3; $i <99.4; $i+=0.01) {     echo $i."<br />";}//$i+=0.01 for里面的第二个分号后面的内容表示增加的量 每循环一次加多少$i+=0.01表示每次加0.01 而你的$i+=99.3表示每次加99.3 81.3加99.3超过99.4了

for ($i=81.3; $i <99.4; $i+=0.01) {     echo $i."<br />";}//$i+=0.01 for里面的第二个分号后面的内容表示增加的量 每循环一次加多少$i+=0.01表示每次加0.01 而你的$i+=99.3表示每次加99.3 81.3加99.3超过99.4了


打错了应该是$i+=0.1
错是错在循环到90的时候,自动 转为浮点了,变成90.0999999999

for ($i=81.3; $i <99.4; $i+=0.01) {     echo round($i,2)."<br />";}//$i+=0.01 for里面的第二个分号后面的内容表示增加的量 每循环一次加多少$i+=0.01表示每次加0.01 而你的$i+=99.3表示每次加99.3 81.3加99.3超过99.4了 所以只循环一次就结束这个循环了

浮点运算的时候是存在误差的 这可以不用管他 用相关的函数处理下

for ($i=81.3; $i <99.4; $i+=0.01) {     echo round($i,2)."<br />";}//$i+=0.01 for里面的第二个分号后面的内容表示增加的量 每循环一次加多少$i+=0.01表示每次加0.01 而你的$i+=99.3表示每次加99.3 81.3加99.3超过99.4了 所以只循环一次就结束这个循环了

浮点运算的时候是存在误差的 这可以不用管他 用相关的函数处理下 .

帮人帮到底吧,怎么解决?不会函数。

帮人帮到底吧,怎么解决?不会函数。
echo round($i,2)."
";上面不是写出来了吗

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn