使用 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
我使用 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