首先要明白,浮点数是不可能精确匹配的。例如我要匹配 for($i=1;$i<=300;$i++)
{
$a += 1/7;
}
if($a == 300/7)
{
print("Same");
}
else
{
print("no ");
}
echo $a;但是,每种语言的精度都是有限的,php也不例外。都会有一个最大精度范围,只要不出php的这个范围就不会出问题。
楼主的例子应该不会出现问题吧,
但是我这个例子就不行了。
除非把300改为3,就可以。

解决方案 »

  1.   

    自已顶,再回二楼同志的信息。
    我的例子,环境是:PHP4.3.11,WINXP下运行的,返回的是FALSE。
    测试很多遍没法子乾地精确比对,所以出错。
    希望大家能够帮我解决。
      

  2.   

    if(abs(100.15+32.549+10.181) - $L < 5e-10){
      

  3.   

    感觉这类对浮点数的研究在php中没多大用
      

  4.   

    浮点数比较不要用==,要用< && > 
    各种语言都是如此。