PHP money_format函数的完整指南

336 阅读2分钟

money_format()函数封装了C库函数strfmon(),不同的是,这个实现只同时转换一个数字。

PHP money_format

PHP money_format()是一个内置函数, 返回格式化为货币字符串的字符串。 money_format()函数在主字符串中有百分号(%)的地方插入一个格式化的数字。

PHP money_format()函数是一个预定义的函数,它使用一个格式化的数字作为货币字符串。它返回该数字的格式化版本。money_format()函数在Windows平台上不工作。

money_format()函数返回数字的格式化版本。

语法

请参阅以下语法:

money_format(string, number)

字符串参数

字符串 参数是必需的。指定一个要格式化的字符串,以及如何格式化其中的变量。

可能的格式化值

填充和标志

  1. =f - 定义用作填充的字符(f)(例如:%=t.这使用 "t "作为填充)。默认为空格
  2. ^ - 移除分组字符的使用
  3. +或( - 定义了如何显示正数和负数。如果使用 "+",将使用 "+"和"-"的本地设置(通常在负数前面有符号,在正数前面没有)。如果使用"(",则负数被括在括号内。默认是 "+"。
  4. ! - 它停止在输出字符串中使用货币符号。
  5. - 如果使用"-",所有字段都是左对齐的。默认是右对齐。

字段宽度

  1. x- 定义最小字段宽度(x)。默认为0
  2. #x - 定义小数点左边的最大数字(x)。它用于保持格式化的输出在同一列中对齐。如果数字的数量比x更重要,这个规格会被忽略
  3. .x- 定义小数点右边的最大数字(x)。如果x为0,那么小数点和其右边的数字将不被显示。默认为本地设置。

转换字符

  1. i - 数字被格式化为国际货币格式。
  2. n - 数字被格式化为国家货币格式。
  3. % - 它返回%字符。

如果使用多个格式值,它们的顺序必须与上面所示相同。此功能受本地设置影响。

数字参数

数字 参数是必需的,数字被插入格式字符串中的%符号处。

见下面的代码例子:

<?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中被定义。 你可能会感到惊讶。

本教程到此为止。