php中,我们经常需要将数字格式化成货币字符串,这时就需要使用php的内置函数money_format()函数,本文就带大家一起来看一看这个函数。首先我们来看一看这个函数的语法: money_format
money_format ( string $format , float $number )
$format:规定要格式化的字符串及如何格式化字符串中的变量。单个 % 字符可选的标记(flags)可选的字段宽度可选的,左侧精度可选的,右侧精度必选的,单个转化字符。
$number:需要格式化的数字。
返回值:返回格式化后的字符。格式字符串前后的字符将原封不动返回。 传入的 number 如果不是数字,将返回 null 并且产生 E_WARNING。
注意:money_format()
函数 此函数包装了 C
函数库中的 strfmon()
,只被定义在运行该函数系统具有strfmon
功能的时候才可使用,而Windows
系统没有,所有money_format()
在Windows
中未定义,导致提示未定义错误。或者你所使用的php版本
低于4.3
。
1.正数的使用
<?php $number = 1234.56; // 打印 en_US locale 的国际化格式 setlocale(LC_MONETARY, 'en_US'); echo money_format('%i', $number) . "\n"; // USD 1,234.56 // 打印意大利国家的格式,带两位浮点小数` setlocale(LC_MONETARY, 'it_IT'); echo money_format('%.2n', $number) . "\n"; // Eu 1.234,56 ?>
2.负数的使用
<?php $number = -1234.5672; // 美国国家的格式,使用圆括号 () 标记负数。 // 左侧精度使用十位 setlocale(LC_MONETARY, 'en_US'); echo money_format('%(#10n', $number) . "\n"; // ($ 1,234.57) // 相似的格式,添加了右侧两位小数点的精度,同时用 * 来填充 echo money_format('%=*(#10.2n', $number) . "\n"; // ($********1,234.57)
3.格式字符串前后,添加一些简介
<?php setlocale(LC_MONETARY, 'en_GB'); $fmt = 'The final value is %i (after a 10%% discount)'; echo money_format($fmt, 1234.56) . "\n"; // The final value is GBP 1,234.56 (after a 10% discount)