Php 而循环除法则低于确定的数值

Php 而循环除法则低于确定的数值,php,while-loop,division,Php,While Loop,Division,此代码将除以分数,直到达到数字5 数据库中的$rows[score]等于6600 <?php $i = $rows[score]; //score is 6600 in the database while ($i >= 5) { echo $i = $i /2; echo "<br>"; } ?> 这是我的浏览器输出的内容: 3300 1650年 825 412.5 206.25 103.125 51.562

此代码将除以分数,直到达到数字5

数据库中的$rows[score]等于6600

<?php
    $i = $rows[score]; //score is 6600 in the database
    while ($i >= 5) {
        echo $i = $i /2; 
        echo "<br>";
}
?>

这是我的浏览器输出的内容:

3300

1650年

825

412.5

206.25

103.125

51.5625

25.78125

12.890625

6.4453125

3.22265625


我不明白为什么浏览器会输出最后一个3.22-如何阻止循环回显最后一个小于5的值???

因为6大于5?因此,它又做了一个循环,循环停止时$I3.2。这里没有任何错误。你得到的最后一个值来自
6.4453125/2=3.22265625
,因为
6.4453125
仍然大于
5
如果
($i我找到了回答我自己问题的方法,所以3,22将不会在页面上查看

<?php
$i = $rows[score]; //score is 6600 in the database
while ($i >= 5) {
    $i = $i /2; 

    if($i >= 5) {
    echo $i;
    echo "<br>";
    }
}
?>

由于在显示结果之前要除以2,因此当$i>=(5*2)即$i>=10而不是5时,您希望停止循环

<?php
$i = $rows[score]; //score is 6600 in the database
while ($i >= 10) {
    echo $i = $i /2; 
    echo "<br>";
}
?>

如何阻止循环回显3.2值?如何阻止循环回显3.2值?您可以将
$I
设置为至少大于
6.4453125
,例如
while($I>=6.5)
对同一事物测试$I两次是毫无意义的。为什么不将条件更改为
while($I>=6.5)
?将输出6.4,然后终止
3300
1650
825
412.5
206.25
103.125
51.5625
25.78125
12.890625
6.4453125