先看下手册中一些常用的处理数字的方法
round -- 对浮点数进行四舍五入
float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。范例
- echo round(3.6); // 4
- echo round(3.6, 0); // 4
- echo round(1.95583, 2); // 1.96
- echo round(1241757, -3); // 1242000
- 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]] )
参数(数字,保留小数位数(四舍五入),整数于小数点分隔符,进千分隔符)
- $number = 1234.56;
- $english_format_number = number_format($number);
- // 1,235
- $number = 1234.5678;
- $english_format_number = number_format($number, 2, '.', '');
- // 1234.57
- $number = 1234.567;
echo number_format($number, 2, '#', ',');- // 1,234#57
但是实际处理中,有时候既需要保留小数,又需要不让它四舍五入。
这边记一个简单的代码吧
- $number = 1234.567;
- $number = floor($number*100)/100;
- echo $number; //输出1234.56
有时候要求可能更复杂需要结合一些字符串处理方法来解决。总之,菜鸟的目标就暂时停留在解决问题的基础上,至于之间的性能差异及比较就不深究了 :-)