2012-12-07 73 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

你總是這麼好幫助:) –

相關問題