Python 对数字的千分位处理方式

Python 对数字的千分位处理方式

对数字的千分位处理

法1

>>> "{:,}".format(56381779049)
"56,381,779,049"
>>> "{:,}".format(56381779049.1)
"56,381,779,049.1"
>>>

法2

>>> import re
>>> subject = "1234567"
>>> result = re.sub(r"(?<=d)(?=(?:ddd)+$)", ",", subject)
>>> result
"1,234,567"

法3

>>> import re
>>> subject = "1234567"
>>> result = re.sub(r"(d)(?=(ddd)+(?!d))", r"1,", subject)
>>> result
"1,234,567"

格式化千分位数字

2.7版本以上直接用format设置千分位分隔符

Python 2.7 (r27:82500, Nov 23 2010, 18:07:12)
[GCC 4.1.2 20070115 (prerelease) (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> format(1234567890,",")
"1,234,567,890"
>>> 

正则实现

import re
def strConv(s):  
    s =  str(s)
    while True:
        (s,count) = re.subn(r"(d)(d{3})((:?,ddd)*)$",r"1,23",s)
        if count == 0 : break
    return s
print strConv(12345)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云海天教程。

原文地址:https://blog.csdn.net/guaguastd/article/details/42549267