而不是显示如下格式的数字:
1,234,567.890,我想显示如下格式的数字:
1 234 567.890,与此略有不同:
1 234 567.890。
我正在使用PHP函数:
number_format($value, 0, ".", " ")
但是,它产生了这个:
1234567.890
我已经将http标头和html文档设置为UTF-8。我认为这个问题是由于瘦空间是一个多字节字符而产生的。我无法找到一个处理此问题的mb字符串函数。
有没有人知道如何处理这个问题?
答案 0 :(得分:5)
5.4.0此函数现在支持dec_point和thousands_sep中的多个字节。在旧版本中只使用了每个分隔符的第一个字节。
基于此,对于旧版本的PHP版本中的问题,这是一个非常hacky修复,而不是滚动自己的number_format
实现:
$separator = ' ';
echo preg_replace('/(?<=\d)\x' . bin2hex($separator[0]) . '(?=\d)/',
$separator,
number_format($value, 0, '.', $separator));
答案 1 :(得分:0)
在更新的(> 5.4.0)版本的PHP中,只需将稀疏空间直接用作分隔符,如下所示:
number_format($value, 0, ".", " ");