2012-04-19 94 views
6

我想在浮動千位分隔符。我在做什麼是:千位分隔符格式字符串與浮游

>>> import locale 
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') 
'en_US.UTF-8' 
>>> print '{0:n}'.format(123456.0) 
123,456 

當整數部分有7位以上不工作:

>>> print '{0:n}'.format(1234567.0) 
1.23457e+06 

,我發現解決方法是在格式化之前把浮動到一個整數:

>>> print '{0:n}'.format(int(1234567.0)) 
1,234,567 

有一個格式字符串,將處理所有彩車,而不需要首先把它變成一個整數?

回答

6

使用語言環境模塊格式功能:

>>> locale.setlocale(locale.LC_ALL, 'English') 
>>> 'English_United States.1252' 

>>> print locale.format('%.2f', 123456789.0, True) 
>>> 123,456,789.00 
6

區域設置是有點難看,因爲它不是線程安全的,並且非常依賴於哪些區域實際上做。這可能是你想要的,但這裏的Python的內部版本(從2.7開始):

>>> '{0:,.2f}'.format(123466666) 
'123,466,666.00' 

進行了規範見http://www.python.org/dev/peps/pep-0378/

+0

我喜歡這個答案更接受的。謝謝! – Mathias711 2016-02-12 08:17:50