Python: 如何转换以逗号分隔的数字随着数字计数的增加?
Python: How to convert a number which ll separated by comma as number count increases?
我有一个数字:100 我在这里显示为它。
但是当我试图将数字显示为 1000 时,我想显示为 1,000。& 以此类推,例如 1,00,000。
低于结构
数字格式为
10 10
100 100
1000 1,000
10000 10,000
100000 1,00,000
1000000 10,00,000
10000000 1,00,00,000
100000000 10,00,00,000
1000000000 1,00,00,00,000
10000000000 10,00,00,00,000
我想在 python 中完成以上所有事情。
我想过使用正则表达式,但不知道如何继续。
有人知道吗?
我认得这种分隔数字的方式是在印度使用的。所以我认为你可以使用 locale
:
得到你想要的
import locale
locale.setlocale(locale.LC_NUMERIC, 'hi_IN')
locale.format("%d", 10000000000, grouping=True)
要使用的确切语言环境在您的系统上可能有所不同;尝试 locale -a | grep IN
获取已安装的印度语言环境列表。
更新: 此代码现在支持 int
和 float
数字!
你可以自己写一个数字到字符串的转换函数,像这样:
def special_format(n):
s, *d = str(n).partition(".")
r = ",".join([s[x-2:x] for x in range(-3, -len(s), -2)][::-1] + [s[-3:]])
return "".join([r] + d)
使用简单:
print(special_format(1))
print(special_format(12))
print(special_format(123))
print(special_format(1234))
print(special_format(12345))
print(special_format(123456))
print(special_format(12345678901234567890))
print(special_format(1.0))
print(special_format(12.34))
print(special_format(1234567890.1234567890))
以上示例将产生以下输出:
1
12
123
1,234
12,345
1,23,456
1,23,45,67,89,01,23,45,67,890
1.0
12.34
1,23,45,67,890.1234567
我有一个数字:100 我在这里显示为它。 但是当我试图将数字显示为 1000 时,我想显示为 1,000。& 以此类推,例如 1,00,000。
低于结构
数字格式为
10 10
100 100
1000 1,000
10000 10,000
100000 1,00,000
1000000 10,00,000
10000000 1,00,00,000
100000000 10,00,00,000
1000000000 1,00,00,00,000
10000000000 10,00,00,00,000
我想在 python 中完成以上所有事情。
我想过使用正则表达式,但不知道如何继续。
有人知道吗?
我认得这种分隔数字的方式是在印度使用的。所以我认为你可以使用 locale
:
import locale
locale.setlocale(locale.LC_NUMERIC, 'hi_IN')
locale.format("%d", 10000000000, grouping=True)
要使用的确切语言环境在您的系统上可能有所不同;尝试 locale -a | grep IN
获取已安装的印度语言环境列表。
更新: 此代码现在支持 int
和 float
数字!
你可以自己写一个数字到字符串的转换函数,像这样:
def special_format(n):
s, *d = str(n).partition(".")
r = ",".join([s[x-2:x] for x in range(-3, -len(s), -2)][::-1] + [s[-3:]])
return "".join([r] + d)
使用简单:
print(special_format(1))
print(special_format(12))
print(special_format(123))
print(special_format(1234))
print(special_format(12345))
print(special_format(123456))
print(special_format(12345678901234567890))
print(special_format(1.0))
print(special_format(12.34))
print(special_format(1234567890.1234567890))
以上示例将产生以下输出:
1
12
123
1,234
12,345
1,23,456
1,23,45,67,89,01,23,45,67,890
1.0
12.34
1,23,45,67,890.1234567