money_format()函数封装了C库函数strfmon(),不同的是,这个实现只同时转换一个数字。
PHP money_format
PHP money_format()是一个内置函数, 返回格式化为货币字符串的字符串。 money_format()函数在主字符串中有百分号(%)的地方插入一个格式化的数字。
PHP money_format()函数是一个预定义的函数,它使用一个格式化的数字作为货币字符串。它返回该数字的格式化版本。money_format()函数在Windows平台上不工作。
money_format()函数返回数字的格式化版本。
语法
请参阅以下语法:
money_format(string, number)
字符串参数
字符串 参数是必需的。指定一个要格式化的字符串,以及如何格式化其中的变量。
可能的格式化值
填充和标志
- =f - 定义用作填充的字符(f)(例如:%=t.这使用 "t "作为填充)。默认为空格
- ^ - 移除分组字符的使用
- +或( - 定义了如何显示正数和负数。如果使用 "+",将使用 "+"和"-"的本地设置(通常在负数前面有符号,在正数前面没有)。如果使用"(",则负数被括在括号内。默认是 "+"。
- ! - 它停止在输出字符串中使用货币符号。
- - 如果使用"-",所有字段都是左对齐的。默认是右对齐。
字段宽度
- x- 定义最小字段宽度(x)。默认为0
- #x - 定义小数点左边的最大数字(x)。它用于保持格式化的输出在同一列中对齐。如果数字的数量比x更重要,这个规格会被忽略
- .x- 定义小数点右边的最大数字(x)。如果x为0,那么小数点和其右边的数字将不被显示。默认为本地设置。
转换字符
- i - 数字被格式化为国际货币格式。
- n - 数字被格式化为国家货币格式。
- % - 它返回%字符。
如果使用多个格式值,它们的顺序必须与上面所示相同。此功能受本地设置影响。
数字参数
数字 参数是必需的,数字被插入格式字符串中的%符号处。
见下面的代码例子:
<?php
$number = 1921.11;
setlocale(LC_MONETARY,"de_DE");
echo money_format("%.2n", $number);
请看输出结果:
➜ pro php app.php
Eu1.921,11
➜ pro
美元的money_format
让我们看看对美元的情况:
<?php
$number = 1921.11;
setlocale(LC_MONETARY, 'en_US.UTF-8');
echo money_format('%.2n', $number);
请看输出结果:
➜ pro php app.php
$1,921.11
➜ pro
如果 money_format()函数似乎不能正常工作,请确保你定义了一个有效的locale。
在PHP中以印度数字格式显示货币
我们可以用PHP中的number_format()来显示印度数字格式的货币:
<?php
$amount = '1000';
setlocale(LC_MONETARY, 'en_IN');
$amount = money_format('%!i', $amount);
echo $amount;
上面的代码会对你有用。
仔细检查money_format()是否在你计划代码运行的任何版本的PHP中被定义。 你可能会感到惊讶。
本教程到此为止。