floor往下取整,当然这样
intval丢弃小数部分

解决方案 »

  1.   

    用bcmath系列函数来操作,编译时候加上--enable-bcmath。windows版本默认应该是把这个编译进去了的。
    $price=64.99; 
    print_r(floor(bcmul($price,100)));
      

  2.   

    和Float的存储格式有关。<?php 
       $price=64.99; 
       print_r($price*100); 
       echo ' <br/>'; 
       print_r(ceil($price*100)); 
       echo ' <br/>'; 
       print_r(ceil($price*100)/100); 
    ?>输出是:
    6499 
    6499 
    64.99
      

  3.   

    PHP手冊上講得很清楚了,永遠不要相信浮點數的最後一位,也不要將兩個浮點數來做全等比較.這跟浮點數的內部處理機制有關