可能性のある複製:
桁ごとの区切りとしてカンマを使用して数値を出力する方法
例えば:
>> print numberFormat(1234)
>> 1,234
または、Pythonこれを行う組み込み関数がありますか?
最初にロケールを適切に設定することを忘れないでください。
webpyutils.py
から削除:
def commify(n):
"""
Add commas to an integer `n`.
>>> commify(1)
'1'
>>> commify(123)
'123'
>>> commify(1234)
'1,234'
>>> commify(1234567890)
'1,234,567,890'
>>> commify(123.0)
'123.0'
>>> commify(1234.5)
'1,234.5'
>>> commify(1234.56789)
'1,234.56789'
>>> commify('%.2f' % 1234.5)
'1,234.50'
>>> commify(None)
>>>
"""
if n is None: return None
n = str(n)
if '.' in n:
dollars, cents = n.split('.')
else:
dollars, cents = n, None
r = []
for i, c in enumerate(str(dollars)[::-1]):
if i and (not (i % 3)):
r.insert(0, ',')
r.insert(0, c)
out = ''.join(r)
if cents:
out += '.' + cents
return out
他の解決策があります こちら 。
整数でlocale.format()
を使用しますが、環境の現在のロケールに注意してください。一部の環境では、このセットが設定されていないか、コンマフィケーションされた結果が得られないものに設定されている場合があります。
この正確な問題に対処するために記述しなければならなかったコードを次に示します。プラットフォームに応じて、ロケールが自動的に設定されます。
try:
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') #use locale.format for commafication
except locale.Error:
locale.setlocale(locale.LC_ALL, '') #set to default locale (works on windows)
score = locale.format('%d', player['score'], True)