先看下手册中一些常用的处理数字的方法

round -- 对浮点数进行四舍五入

float round ( float val [, int precision] )

返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。范例

  1. echo round(3.6);         // 4 
  2. echo round(3.6, 0);      // 4 
  3. echo round(1.95583, 2);  // 1.96 
  4. echo round(1241757, -3); // 1242000 
  5. echo round(5.045, 2);    // 5.05 

注: PHP 默认不能正确处理类似 "12,300.2" 的字符串

ceil -- 进一法取整

float ceil ( float value )  如:echo ceil(3.2); //输出4

floor -- 舍去法取整

float floor ( float value )  如:echo floor(2.86);//输出2

number_format -- 以千为单位格式化数字

string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

参数(数字,保留小数位数(四舍五入),整数于小数点分隔符,进千分隔符)

  1. $number = 1234.56; 
  2.  
  3. $english_format_number = number_format($number); 
  4. // 1,235 
  5.  
  6. $number = 1234.5678; 
  7. $english_format_number = number_format($number, 2, '.'''); 
  8. // 1234.57 
  9. $number = 1234.567;
    echo number_format($number, 2, '#', ',');
  10. // 1,234#57

但是实际处理中,有时候既需要保留小数,又需要不让它四舍五入。

这边记一个简单的代码吧

  1. $number = 1234.567; 
  2. $number = floor($number*100)/100; 
  3. echo $number;  //输出1234.56

有时候要求可能更复杂需要结合一些字符串处理方法来解决。总之,菜鸟的目标就暂时停留在解决问题的基础上,至于之间的性能差异及比较就不深究了 :-)