for循环中的if条件将在(n)次之后停止工作。
我正在使用PHP 7.3.6-1 + ubuntu18.04.1 + deb.sury.org + 1
给出以下代码:
for($i = 0.99; $i<= 30.99; $i++){
echo $i;
if($i == 10.99){
echo '<--- selected';
}
echo '<br>';
}
输出
0.99
1.99
2.99
3.99
4.99
5.99
6.99
7.99
8.99
9.99
10.99<--- selected
11.99
12.99
13.99
14.99
15.99
16.99
17.99
18.99
19.99
20.99
21.99
22.99
23.99
24.99
25.99
26.99
27.99
28.99
29.99
当条件介于0.99 - 15.99
之间时,此情况仍然适用,但是,不会返回在16.99 - 29.99
和<--- selected
之间进行条件更改。
我在循环中使用int进行了几次测试,如下所示,它似乎工作正常。
for($i = 0; $i<= 30; $i++){
echo $i;
if($i == 18){
echo '<--- selected';
}
echo '<br>';
}
我认为问题与浮动广告素材(0.99-30.99)有关。
答案 0 :(得分:1)
一种可能的解决方案是使数字成为字符串,然后对它们进行比较。
一侧使用“ 10.99”,另一侧使用number_format
for($i = 0.99; $i<= 30.99; $i++){
echo $i;
if(number_format($i,2) == "22.99"){
echo '<--- selected';
}
echo "\n";
}
答案 1 :(得分:0)
在开始比较之前,让我们清洗浮子。
import { Watch, Vue } from 'vue-property-decorator';
export default class SomeClass extends Vue {
...
@Watch('item.someOtherProp')
someOtherPropChange(newVal, oldVal) {
// do something
}
...
}