PHP数字格式字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asty9000/article/details/81294880

在对数字字符串进行格式化时,如money_format函数,需要对数字的格式进行定义,格式字符串结构为“%[flags][field width][left precision][right precision]conversion character”。

flags:可以使用一个或多个标记。

  • =:字符=紧跟单字节字符表示使用该字节对数字进行填充,如果不设置默认使用空格进行填充。
  • ^:禁用分组字符,如当前区域设置的货币中的逗号。
  • +或(:正负数字的格式,使用+将使用区域设置中相当于+和-的符号,如果使用(负数将被圆括号包围。如果不设置默认为+。
  • !:不输出货币的符号,比如¥。
  • -:如果有此标记,则左对齐,对右边进行填充,如果没有此标记则是右对齐,默认是右对齐。

field width:十进制数值字符串的宽度,字段默认右对齐,默认值为0。

left precision:左侧精度。

  • #n:小数字符(比如小数点)前的最大位数n,常用于格式对齐,如果位数小于n则使用填充字符填充,如果大于n则忽略此设置。如果没有使用^禁用分组,且存在分组分隔符的话,分隔符不计入位数n中,填充的字符在满足分隔符规则时,不会插入分隔符而是用指定的填充字符进行填充。

right precision:右侧精度。

  • .p:小数字符(比如小数点)前的最大位数p,如果p是0,则小数符号右侧的数值都不保留,如果不使用此标记,则取决于当前区域设置,小数符号后指定位数的数字,格式化时会四舍五入。

conversion character:转换字符。

  • i:根据地区的国际货币格式进行格式化的。
  • n:根据地区的国家货币格式进行格式化的。
  • %:返回字符%。
<?php
if (false !== setlocale(LC_ALL, 'zh_CN', 'en_US', 'en_GB', 'ge')) {
   var_dump(localeconv());
}
echo money_format('%=a#8.2n', 1234.567) . "\n";
echo money_format('%=b^#8.2i', 1234.567) . "\n";
echo money_format('%=c!#8.2i', 1234.567) . "\n";
echo money_format('%=d#8.2i%%', 1234.567) . "\n";
echo money_format('%=e-#8.2n%%', 1234.567) . "\n";
echo money_format('%=f+#8.2i', -1234.567) . "\n";
echo money_format('%=g(#8.2i', -1234.567) . "\n";
?>

猜你喜欢

转载自blog.csdn.net/asty9000/article/details/81294880