Python でフォーマット1000000
するにはどうすればよいですか? 1.000.000
どこ '。' 小数点桁区切り記号です。
59136 次
9 に答える
116
桁区切り記号を追加する場合は、次のように記述できます。
>>> '{0:,}'.format(1000000)
'1,000,000'
ただし、Python 2.7 以降でのみ機能します。
フォーマット文字列の構文を参照してください。
古いバージョンでは、locale.format()を使用できます:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_AU.utf8'
>>> locale.format('%d', 1000000, 1)
'1,000,000'
使用することの追加の利点はlocale.format()
、ロケールの千単位の区切り記号を使用することです。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')
'de_DE.utf-8'
>>> locale.format('%d', 1000000, 1)
'1.000.000'
于 2011-04-01T13:02:09.467 に答える
20
私はそれを本当に理解していませんでした。しかし、これが私が理解していることです:
1123000を1,123,000に変換したいとします。次の形式を使用してこれを行うことができます。
例:
>>> format(1123000,',d')
'1,123,000'
于 2011-04-01T12:56:58.763 に答える
1
ミケルの答えを参考にして、私のmatplotlibプロットに彼のソリューションをこのように実装しました。私はそれが役立つと思う人もいると思いました:
ax=plt.gca()
ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, loc: locale.format('%d', x, 1)))
于 2018-01-18T13:52:05.630 に答える
0
ここでは、代替の回答のみを示します。Pythonで分割演算子を使用し、いくつかの奇妙なロジックを使用できますコードは次のとおりです
i=1234567890
s=str(i)
str1=""
s1=[elm for elm in s]
if len(s1)%3==0:
for i in range(0,len(s1)-3,3):
str1+=s1[i]+s1[i+1]+s1[i+2]+"."
str1+=s1[i]+s1[i+1]+s1[i+2]
else:
rem=len(s1)%3
for i in range(rem):
str1+=s1[i]
for i in range(rem,len(s1)-1,3):
str1+="."+s1[i]+s1[i+1]+s1[i+2]
print str1
出力
1.234.567.890
于 2016-07-05T10:54:20.007 に答える