数字辅助函数

数字辅助函数文件包含了帮助你以与区域设置相关的方式处理数字数据的函数。

加载此辅助函数

使用以下代码加载此辅助函数:

<?php

helper('number');

当事情出错时

如果 PHP 的国际化和本地化逻辑无法使用给定的区域设置和选项处理所提供的值,则会抛出 BadFunctionCallException()

可用函数

以下函数可用:

number_to_size($num[, $precision = 1[, $locale = null]])
参数:
  • $num (mixed) – 字节数

  • $precision (int) – 浮点精度

返回:

格式化的数据大小字符串,如果提供的值不是数字则返回 false

返回类型:

string

根据大小格式化数字,并添加适当的后缀。示例:

<?php

echo number_to_size(456); // Returns 456 Bytes
echo number_to_size(4567); // Returns 4.5 KB
echo number_to_size(45678); // Returns 44.6 KB
echo number_to_size(456789); // Returns 447.8 KB
echo number_to_size(3456789); // Returns 3.3 MB
echo number_to_size(12345678912345); // Returns 1.8 GB
echo number_to_size(123456789123456789); // Returns 11,228.3 TB

可选的第二个参数允许你设置结果的精度:

<?php

echo number_to_size(45678, 2); // Returns 44.61 KB

可选的第三个参数允许你指定在生成数字时应使用的区域设置,这可能会影响格式设置。如果未指定区域设置,则将分析请求并从标头或应用程序默认值中获取适当的区域设置:

<?php

// Generates 11.2 TB
echo number_to_size(12345678912345, 1, 'en_US');
// Generates 11,2 TB
echo number_to_size(12345678912345, 1, 'fr_FR');

备注

此函数生成的文本位于以下语言文件中:language/<your_lang>/Number.php

number_to_amount($num[, $precision = 1[, $locale = null])
参数:
  • $num (mixed) – 要格式化的数字

  • $precision (int) – 浮点精度

  • $locale (string) – 用于格式化的区域设置

返回:

字符串的人类可读版本,如果提供的值不是数字则返回 false

返回类型:

string

将数字转换为人类可读版本,如 123.4 万亿 用于高达四次方的数字。示例:

<?php

echo number_to_amount(123456); // Returns 123 thousand
echo number_to_amount(123456789); // Returns 123 million
echo number_to_amount(1234567890123, 2); // Returns 1.23 trillion
echo number_to_amount('123,456,789,012', 2); // Returns 123.46 billion

可选的第二个参数允许你设置结果的精度:

<?php

echo number_to_amount(45678, 2); // Returns 45.68 thousand

可选的第三个参数允许指定区域设置:

<?php

echo number_to_amount('123,456,789,012', 2, 'de_DE'); // Returns 123,46 billion
number_to_currency($num, $currency[, $locale = null[, $fraction = 0]])
参数:
  • $num (float) – 要格式化的数字

  • $currency (string) – 货币类型,即 USD、EUR 等

  • $locale (string|null) – 用于格式化的区域设置

  • $fraction (integer) – 小数点后小数位数

返回:

适用于该区域设置的货币格式的数字

返回类型:

string

将数字转换为常见的货币格式,如 USD、EUR、GBP 等:

<?php

echo number_to_currency(1234.56, 'USD', 'en_US', 2);  // Returns $1,234.56
echo number_to_currency(1234.56, 'EUR', 'de_DE', 2);  // Returns 1.234,56 €
echo number_to_currency(1234.56, 'GBP', 'en_GB', 2);  // Returns £1,234.56
echo number_to_currency(1234.56, 'YEN', 'ja_JP', 2);  // Returns YEN 1,234.56

如果你不指定区域设置,将使用请求区域设置。

number_to_roman($num)
参数:
  • $num (int|string) – 要转换的数字

返回:

从给定参数转换后的罗马数字

返回类型:

string|null

将数字转换为罗马数字:

<?php

echo number_to_roman(23);    // Returns XXIII
echo number_to_roman(324);   // Returns CCCXXIV
echo number_to_roman(2534);  // Returns MMDXXXIV

此函数仅处理 1 到 3999 范围内的数字。对于该范围之外的任何值,它都将返回 null