PHP数字价格格式化,保留两位小数

转载 原文链接:http://www.cnblogs.com/lhm166/articles/5789489.html

我们需要将价格保留两位小数比如12元需要表示为¥12.00,这时就需要使用number_format函数,使用方法为number_format(12,2),如果需要四舍五入,可以使用round函数配合。

number_format

格式化数字字串。

语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);

传回值: 字串

函式种类: 数学运算

内容说明

本函式用来将浮点参数 number 格式化。若没加参数 decimals 则传回的字串只要整数部份,加了此参数才依参数指定的小数点位数传回。参 数 dec_point 表示小数点的表示方式方法,内定值是 ”.”,若需要转换成其它的小数点就可以在这个参数改掉。参 数 thousands_sep 为整数部份每三位的分隔符号,内定值是 ”,”。本函式最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字 串;也可以有二个或者四个参数,但不能用三个参数。值得注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。

描述
number

必需。要格式化的数字。

如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符。

decimals可选。规定多少个小数。如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字。
decimalpoint可选。规定用作小数点的字符串。
separator

可选。规定用作千位分隔符的字符串。

仅使用该参数的第一个字符。比如 "xyz" 仅输出 "x"。

注释:如果设置了该参数,那么所有其他参数都是必需的。

例子:

1

2

3

4

5

6

7

<?php

  echonumber_format("1000000");

  echonumber_format("1000000",2);

  echonumber_format("1000000",2,",",".");

  echonumber_format("1000000",2,"*",".");

  echonumber_format("1000000",2,".","");

?>

输出:

1,000,000

1,000,000.00

1.000.000,00

1.000.000*00

1000000.00

有意思的number_format

number_format(number,decimals,decimalpoint,separator)

有四个参数,

第一个和第二个参数是必须的,第三个和第四个是可选项。但实际测试中第三个和第四个这两个参数必须同时存在,也就是要么都设置,要么都不设置。

没有设置第三个和第四个参数:

Number_format(13526, 2); echo 13,526.00;

如果你将这处理后的数字去累加,则只会得到一个13!。

设置了第三个和第四个参数

Number_format(23125, 2, ‘.',''); echo 23125.00;

这时再对这处理后的数字进行运算的话则会正确执行!

该函数的第三个参数表示 ‘小数点'位置用什么来表示,可以默认 . ,也可以设置成‘,'等其他符号。Ps:但我相信没人会这么干。

第四个则表示每隔 千位时用什么来分割数字。如果没什么特殊要求,又要进行运算的话最好设置为空。