$var1=45.02;
$var2=45.01+0.01;var_dump($var1===$var2);
var_dump($var1==$var2);
分别输出什么结果?
为什么?

解决方案 »

  1.   

    不要google的结果,那些都知道,只是想明白的更深意一些儿
      

  2.   

    问过好几次了 这个问题 没什么深意的东西 不需要GOOGLE== 就是相等(值)
    ===就是连类型一起判断.完全相等第二个值不相等 结果肯定不会是true
    第一个类型 值都不相等 结果就更不会是 true
      

  3.   

    false == 0
    false !== 0false == ""
    false !== ""...
      

  4.   


    $var1=45.02;
    $var2=45.01+0.01;
    var_dump(floor($var1*10000), floor($var2*10000));
    /**
    *测试系统win32,
    *float(450200)
    *float(450199)
    **/浮点数精度并不可靠,眼睛看到的和程序运行的。。实际上C语言中,比较两个浮点数float OR double类型的,,一般不是直接==判断,而是通过差值小于一个阀值,而认定两数相等