我有一个while循环,基本上就是这样:
$t_step = <some value smaller than 1>;
$t = 0;
while ($t <= 1) {
//do stuff
$t += $t_step;
}
在某些情况下$t
变为1
,但在这种情况下循环不会迭代。
如果我写的是:
while($t <= 1.0001)
它继续产生正确的结果,但我不认为这是理想的。
我可以在这做什么?
BTW。:
我已经尝试过了:
$t = 0.0;
while ($t <= 1.0) { … }
在此处指示浮点值...
更新
由于评论中的要求:
$t_step = 1 / $steps; //$step can be up one hundred right now
答案 0 :(得分:0)
感谢@ chris85的评论,硬币掉了,我可以像这样重写整个事情:
for ($i = 0; $i <= $steps; $i++) {
$t = $i * $t_step;
…
}
这消除了数字问题。
答案 1 :(得分:0)
不如使用浮点值进行迭代,只需使用$steps
进行迭代,就像我在评论中提到的那样。
然后您可以使用for循环。
您可以在循环中计算$t_step
值,并根据需要使用它。
$steps = 100; //or whatever value you're using
for ($i = 0; $i <= $steps; ++$i) {
$t_step = $i / $steps;
}