php添加浮点数给出了错误的结果

时间:2015-10-29 07:11:09

标签: php floating-point

我在添加浮点数时得到错误的结果,请告诉我你的程序员是如何逃避这个的

代码:

 $tot = 0;
    $ans = (float)101;
    for($i=1; $i<= 10; $i++){
        $tot = $tot + 10.1;
    }
    var_dump($tot);
    var_dump($ans);
    if($tot == $ans){
        echo '<br />Both are equal ';
    }
    else{
        echo '<br />Both are not equal ';
    }

结果:

浮动101

浮动101

两者不相等

2 个答案:

答案 0 :(得分:1)

此问题继承自C语言。

比较浮动值时会有一点差异,

请参阅this,ans this

试试这个,

if (abs(($tot-$ans)/$tot) < 0.00001) {
    echo '<br />Both are equal ';
}
else{
    echo '<br />Both are not equal ';
}

答案 1 :(得分:0)

尝试'===' ,'=='比较变量引用,'==='比较值

if($tot === $ans){
    echo '<br />Both are equal ';
}
else{
    echo '<br />Both are not equal ';
}