在PHP中声明if if语句

时间:2016-05-30 08:59:22

标签: php if-statement

有人可以解释为什么这段代码:

$a = 0.1;
$b = 0.2;

if ($a + $b == 0.3) {
    echo "OK";
} else {
    echo "KO";
}

返回 KO

我不明白为什么总和结果与浮点数0.3不同,考虑到:

var_dump($a + $b);

返回: float(0.3)

我唯一的假设是比较只在$ b和0.3之间,但怀疑仍然存在,因为在这种情况下:

if ( ($a + $b) == 0.3) {

我得 KO ..

2 个答案:

答案 0 :(得分:0)

这是一个浮点数,如果你修正了精度,那么这个数字的精度就不固定了。

Check Online

$a = 0.1;
$b = 0.2;
$c = sprintf('%.1f', ($a + $b));
if ($c  == 0.3) {
    echo "OK";
} else {
    echo "KO";
}

结果现在是OK

答案 1 :(得分:0)

使用圆函数($ a + b,1);我的代码中有这个问题