<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set("Asia/Shanghai"); //时区$a = 19.9 * 100;
echo $a;
echo '<br/>';$b = (intval($a) == intval(1990)) ? 1 : 0;
echo $b;输出结果:0
这究竟是什么原因造成的呢,没有想明白啊?@all

解决方案 »

  1.   

    echo intval($a); //1989
    echo intval(1990); //1990printf("%.20f", $a); //1989.99999999999977262632
    intval 是截尾(去掉小数部分)
    至少应用 reund(舍入)
      

  2.   

    这其实是精度的原因。很多时候我们看到的数字,在计算机中并不是真正的对应数值,有一定误差= =所以在做金融相关的时候尤其是报表一定要用高精度库,如PHP的BC
      

  3.   

    get到了,感谢亲的解答~