在百度知道上看到这么一个问题

var_dump((0.3-0.2)==0.1);

结果是:false

后来查查手册,原来是浮点数的精度问题。那么0.3-0.2-0.1等于多少呢,结果:2.7755575615629E-17

如果真的涉及到浮点数的比较,可以这样,设计一个精度,就可以比较了。

$ps = 2.7755575615629*pow(10,-16);
$_ps = -2.7755575615629*pow(10,-16);
$flags = "false";
if((0.3-0.2-0.1)<$ps&&(0.3-0.2-0.1)>$_ps)
{
    $flags = "true";
}
echo "0.3-0.2==0.1 is $flags"

 另外可以是gmp函数

那么上面的算式我们应该改写为
<?php
$a = 0.1;
$b = 0.7;
var_dump(bcadd($a,$b,2) == 0.8);
//true