41

コード:

<?php
$start = 0;
$stop  = 1;
$step = ($stop - $start)/10;
$i = $start + $step;
while ($i < $stop) {
    echo($i . "<br/>");
    $i += $step;
}
?>

出力:

0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 <-- notice the 1 printed when it shouldn't

フィドルを作成しました

もう1つ:設定$start = 1$stop = 2て正常に動作する場合。

使用:php 5.3.27

なぜ1印刷されているのですか?

4

3 に答える 3

2

ステップが常に 10 倍になる場合は、次の方法でこれをすばやく行うことができます。

<?php
$start = 0;
$stop  = 1;
$step = ($stop - $start)/10;
$i = $start + $step;
while (round($i, 1) < $stop) { //Added round() to the while statement
    echo($i . "<br/>");
    $i += $step;
}
?>
于 2013-09-05T21:51:15.463 に答える