hyytaojunming 发表于 2018-12-22 13:51:03

PHP 常见数字处理方法

  先看下手册中一些常用的处理数字的方法
  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

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




页: [1]
查看完整版本: PHP 常见数字处理方法