数字四舍五入精确到小数点后2位

少于 1 分钟读完

数字四舍五入精确到小数点后2位是非常常用的功能

以前存在误解,认为在php中使用round()函数已经实现了这个功能

其实round对于 1.2 这种数据,并未处理为 1.20

常用的处理小数方法

number_format

最推荐的方法,可以处理千位分隔,四舍五入,替换小数点显示的字符等。

上述问题的应用代码:

  number_format($number, 2, '.', '');

方法说明

string number_format ( float $number [, int $decimals = 0 ] )

string number_format ( float $number , int $decimals = 0 , string $dec_point = “.” , string $thousands_sep = “,” )

本函数可以接受1个、2个或者4个参数(注意:不能是3个):

如果只提供第一个参数,number的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号”,”

如果提供两个参数,number将保留小数点后的位数到你设定的值,其余同楼上

如果提供了四个参数,number 将保留decimals个长度的小数部分, 小数点被替换为dec_point,千位分隔符替换为thousands_sep

参数

  • number 你要格式化的数字

  • decimals 要保留的小数位数

  • dec_point 指定小数点显示的字符

  • thousands_sep 指定千位分隔符显示的字符

返回值

格式化以后的 number.

注意 返回的值是一个字符串

round

最常用的小数处理,方便好记,如果小数位已经小于指定的位数,函数将不做处理!!!

方法说明

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )

参数

  • val 要处理的值

  • precision 可选的十进制小数点后数字的数目。

  • mode 以下之一: PHP_ROUND_HALF_UP、 PHP_ROUND_HALF_DOWN PHP_ROUND_HALF_EVEN 或 PHP_ROUND_HALF_ODD

sprintf

古老的c函数继承,远古的大牛用它搞了非常多奇技淫巧 官网手册

说明

string sprintf ( string $format [, mixed $args [, mixed $… ]] )

返回一个指定格式的字符串

不想过多的描述,呈上处理四舍五入的代码

  sprintf("%01.2f", $money);
  echo sprintf('%.2f',123.455); //123.45
  echo sprintf('%.2f',12.455);//12.46

有坑如上,诸君小心

留下评论

您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *

正在加载...