将“十进制”分隔符添加到数字中
如何在Python中将1.000.000
格式设置为1.000.000
? 那里的'。' 是十进制标记千位分隔符。
如果你想添加一个千位分隔符,你可以写:
>>> '{0:,}'.format(1000000) '1,000,000'
但它只适用于Python 2.7及更高版本。
请参阅格式string语法
在旧版本中,您可以使用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'
我真的不明白 但是这是我明白的:
您要将1123000转换为1,123,000。 你可以使用格式来做到这一点:
例:
>>> format(1123000,',d') '1,123,000'
只是在这里扩大了答案:)
我需要有一个第千分隔符和限制浮点数的精度。
这可以通过使用以下格式string来实现:
> my_float = 123456789.123456789 > "{:0,.2f}".format(my_float) '123,456,789.12'
这描述了format()
– 指定符的迷你语言:
[[fill]align][sign][#][0][width][,][.precision][type]
资料来源: https : //www.python.org/dev/peps/pep-0378/#current-version-of-the-mini-language
使用itertools
可以给你更多的灵活性:
>>> from itertools import zip_longest >>> num = "1000000" >>> sep = "." >>> places = 3 >>> args = [iter(num[::-1])] * places >>> sep.join("".join(x) for x in zip_longest(*args, fillvalue=""))[::-1] '1.000.000'
这只是一个替代的答案。 您可以在python中使用split运算符,并通过一些奇怪的逻辑这是代码
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