PHP数字价格格式化,保留两位小数
我们需要将价格保留两位小数比如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 echo number_format( "1000000" ); echo number_format( "1000000" ,2); echo number_format( "1000000" ,2, "," , "." ); echo number_format( "1000000" ,2, "*" , "." ); echo number_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!。
设置了第三个和第四个参数
1
|
Number_format(23125, 2, '.' , '' ); echo 23125.00; |
这时再对这处理后的数字进行运算的话则会正确执行!
该函数的第三个参数表示 ‘小数点'位置用什么来表示,可以默认 . ,也可以设置成‘,'等其他符号。Ps:但我相信没人会这么干。
第四个则表示每隔 千位时用什么来分割数字。如果没什么特殊要求,又要进行运算的话最好设置为空。