在 Python 2 中使用逗号分隔符格式化数字并舍入到小数点后 2 位?

Posted

技术标签:

【中文标题】在 Python 2 中使用逗号分隔符格式化数字并舍入到小数点后 2 位?【英文标题】:Format a number with comma separators and round to 2 decimal places in Python 2? 【发布时间】:2016-04-14 14:21:16 【问题描述】:

我确定这一定是重复的,但我找不到关于 SO 的明确答案。

如何在 Python 2 中将2083525.34561 输出为2,083,525.35

我知道:

"0:,f".format(2083525.34561)

输出逗号但不四舍五入。并且:

"%.2f" % 2083525.34561

四舍五入,但不添加逗号。

【问题讨论】:

【参考方案1】:

添加带有位数的小数点.2f 请参阅文档:https://docs.python.org/2/library/string.html#format-specification-mini-language:

In [212]:
"0:,.2f".format(2083525.34561)

Out[212]:
'2,083,525.35'

对于python 3,您可以使用f-strings(感谢@Alex F):

In [2]:
value = 2083525.34561
f"value:,.2f"


Out[2]:
'2,083,525.35'

【讨论】:

【参考方案2】:
("%.2f" % 2083525.34561).replace(".", ",")

【讨论】:

这将输出'2083525,35' 而不是'2,083,525.35'。问题是要求逗号作为千位分隔符,而不是小数分隔符。 对不起!我误解了这个问题...我是法国人,在法国,您使用小数分隔符来表示小数...:S 虽然是一个错误,但你的回答对我有帮助!

以上是关于在 Python 2 中使用逗号分隔符格式化数字并舍入到小数点后 2 位?的主要内容,如果未能解决你的问题,请参考以下文章

PHP数字格式不带逗号

用逗号格式化数字以在 Python 中分隔千位

输入 Intl.NumberFormat 时 VueJS 数字格式实时以逗号分隔

用逗号分隔格式化数字,oracle 中没有 TO_CHAR

根据区域设置的数字格式(逗号分隔)

检测 VB.Net 中数字的文化,即小数点/千位分隔符的句点或逗号