使用 locale.format() 抑制科学记数法

Suppress scientific notation with locale.format()

我使用 locale.format() 将数字分隔成逗号,但该功能并没有摆脱科学记数法。我想要一种方法 return 将数字分隔为逗号,尾随零且没有科学记数法。

实际代码示例:1160250.1294254328 -> 1.16025e+06

我想要的例子:1160250.1294254328 -> 1,160,250.13

我的代码:

locale.setlocale(locale.LC_ALL, 'en_US.utf8')

x = 1160250.1294254328
x = round(x, 2)
x = locale.format("%g", x, grouping=True, monetary=True)

我第一次看到那个语言环境包给我。

借此机会研究了locale包,发现这个包与字符串格式化操作非常相关

%g 仅用于指数浮点格式。

因此,对于您想要的格式,最好使用下面的格式。

import locale

locale.setlocale(locale.LC_ALL, 'en_us.utf-8')
x = 1160250.1294254328
x = locale.format("%.2f", x, grouping=True, monetary=True)

print(x)

如果您对字符串格式运算符感兴趣,请查看下面的 link。

https://python-reference.readthedocs.io/en/latest/docs/str/formatting.html

尝试使用 f 字符串:

x = 1160250.1294254328
x = round(x, 2)
print(f"{x:,}") # -> Output: 1,160,250.13