如何使用逗号作为千位分隔符打印数字
2022-09-05 01:06:24
如何打印带有逗号作为千位分隔符的整数?
1234567 ⟶ 1,234,567
它不需要特定于区域设置即可在句点和逗号之间做出决定。
如何打印带有逗号作为千位分隔符的整数?
1234567 ⟶ 1,234,567
它不需要特定于区域设置即可在句点和逗号之间做出决定。
'{:,}'.format(value) # For Python ≥2.7
f'{value:,}' # For Python ≥3.6
import locale
locale.setlocale(locale.LC_ALL, '') # Use '' for auto, or force e.g. to 'en_US.UTF-8'
'{:n}'.format(value) # For Python ≥2.7
f'{value:n}' # For Python ≥3.6
每格式规范迷你语言,
该选项表示使用逗号表示千位分隔符。对于区域设置感知分隔符,请改用整数表示类型。
','
'n'
我让它工作:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US')
'en_US'
>>> locale.format("%d", 1255000, grouping=True)
'1,255,000'
当然,您不需要国际化支持,但它清晰,简洁,并使用内置库。
附言:“%d”是通常的%样式格式化程序。您只能有一个格式化程序,但在字段宽度和精度设置方面,它可以是您需要的任何内容。
附言如果你无法上班,我建议你修改一下马克的答案:locale
def intWithCommas(x):
if type(x) not in [type(0), type(0L)]:
raise TypeError("Parameter must be an integer.")
if x < 0:
return '-' + intWithCommas(-x)
result = ''
while x >= 1000:
x, r = divmod(x, 1000)
result = ",%03d%s" % (r, result)
return "%d%s" % (x, result)
递归对于负情况很有用,但每个逗号一个递归对我来说似乎有点过分。