python - 带有 float 的格式字符串中的千位分隔符

我想在 float 中有千个分隔符。我正在做的是:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> print '{0:n}'.format(123456.0)
123,456

当整数部分有 7 位或更多位时,它不起作用:

>>> print '{0:n}'.format(1234567.0)
1.23457e+06

我发现的解决方法是在格式化之前将 float 转换为整数:

>>> print '{0:n}'.format(int(1234567.0))
1,234,567

是否有一个格式字符串可以处理所有 float 而无需先将其转换为整数?

最佳答案

语言环境设置有点难看,因为它不是线程安全的,并且非常依赖于语言环境的实际作用。这可能是你想要的,但这里是 Python 的内部版本(从 2.7 开始):

>>> '{0:,.2f}'.format(123466666)
'123,466,666.00'

见 http://www.python.org/dev/peps/pep-0378/用于规范。

https://stackoverflow.com/questions/10230095/

相关文章:

input - AngularJs:如何在输入中格式化数据?

C# 格式化年龄 - 关于天、周、月 - 年

Python - 为字符串格式化运算符解包列表的简短方法?

c# - 格式化字母数字字符串

javascript - 在Javascript中使链接可点击?

python - python - 如何使用单行将列表/元组转换为python中的空格分隔字符串?

python - .format() 使用 {0 :g} to remove trailing ze

java - 更改 JTable 单元格颜色

c# - DateTime.ToString 格式

python - 使用其 API 和 Python 在 Google 表格电子表格中设置单元格格式