for ($i=81.3; $i <99.4; $i+=99.3) { echo $i."
";}
如上列印結果到了90的時候不正常了,
新手求教,急~~~
回複討論(解決方案)
for ($i=81.3; $i <99.4; $i+=0.01) { echo $i."
";}//$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."
";}//$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)."
";}//$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)."
";}//$i+=0.01 for裡面的第二個分號後面的內容表示增加的量 每迴圈一次加多少$i+=0.01表示每次加0.01 而你的$i+=99.3表示每次加99.3 81.3加99.3超過99.4了 所以只迴圈一次就結束這個迴圈了
浮點運算的時候是存在誤差的 這可以不用管他 用相關的函數處理下 .
幫人幫到底吧,怎麼解決?不會函數。
幫人幫到底吧,怎麼解決?不會函數。
echo round($i,2)."
";上面不是寫出來了嗎