2012-12-07 94 views
3

而不是显示格式化这样的数字:如何使用精简格式将数字格式化为千位分隔符?

1,234,567.890,我想显示格式化这样的数字:

1 234 567.890,其是从该稍有不同:
1 234 567.890。

我使用PHP函数:

number_format($value, 0, ".", " ") 

但是,它会产生这样的:

1234567.890

我已经HTTP头和HTML文件设置为UTF -8。我相信这个问题是由于多空字符的空间很小而引起的。我一直无法找到处理这个问题的MB字符串函数。

有没有人有如何处理这个问题的想法?

+2

*“5.4.0此功能现在支持dec_point和thousands_sep中的多个字节,在旧版本中只使用每个分隔符的第一个字节。“* - 是的,好像你必须推出你自己的实现(或升级PHP)。 – deceze

+0

您确定此代码无法正常工作:'number_format(1234567890,0,'。','');' –

+0

@deceze,啊..很好。我明白了..谢谢,我将需要升级。 –

回答

5

5.4.0该函数现在支持dec_point和thousands_sep中的多个字节。在旧版本中只使用每个分隔符的第一个字节。

http://php.net/number_format

此基础上,下面是这个问题在老版本PHP非常哈克修复,短期滚动自己实现number_format的:

$separator = ' '; 
echo preg_replace('/(?<=\d)\x' . bin2hex($separator[0]) . '(?=\d)/', 
        $separator, 
        number_format($value, 0, '.', $separator)); 
+0

你总是这么好帮助:) –

相关问题