由于一些奇怪的原因,这个if语句没有找到匹配,当值明显等于$ change_pct_candle值时,如下面的var_dump所示
if($change_pct_candle[1] >= 0.38022813688214 && $change_pct_candle[2] >= 1.3487475915221) {}
如果我尝试:
if($change_pct_candle[1] >= 0.38022813688214) {}
有效。如果我尝试:
if($change_pct_candle[2] >= 1.3487475915221) {}
有效。当我尝试:
if($change_pct_candle[1] >= 0 && $change_pct_candle[2] >= 1) {}
有效。当我尝试:
if($change_pct_candle[1] >= 0.38022813688214 && $change_pct_candle[2] >= 1.3487475915221) {}
它不起作用。我在这里做错了吗?
$ change_pct_candle的var_dump是:
array(7) {
[0]=>
float(-0.10984848484848)
[1]=>
float(0.38022813688214)
[2]=>
float(1.3487475915221)
[3]=>
float(-0.57471264367815)
[4]=>
float(0.19193857965451)
[5]=>
float(0.19230769230769)
[6]=>
float(0.1926782273603)
}
答案 0 :(得分:-1)
原因是"浮点数的精度有限"。 只需从php.net查看此页面并密切关注有关此概念的警告。这将解释为什么,并希望该怎么做。 http://php.net/manual/en/language.types.float.php
所以永远不要将浮点数结果信任到最后一位数,并且不要直接比较浮点数是否相等。