2

comma我已经看到很多问题教用千位分隔符来做这件事有多容易:

>>> format(1123000,',d')
'1,123,000'

但是,如果我尝试使用 a dot,它就会发疯:

>>> format(1123000,'.d')
ValueError: Format specifier missing precision

是否有一种简单的 Python 内置独立于语言环境的方法来使其输出'1.123.000'而不是'1,123,000'?

我已经在将“十进制标记”千位分隔符添加到一个数字 上找到了这个答案,但它是手动完成的。它可以更简单并且format(1123000,'.d')语言环境无关吗?或者 Python 没有提供内置的?

@Eugene Yarmash Usingitertools可以给你更多的灵活性:

>>> 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'
4

1 回答 1

6

如果您只处理整数,则可以使用:

x = 123456789
'{:,}'.format(x).replace(',','.')
# returns
'123.456.789'
于 2018-01-24T04:06:20.503 回答