目录
  • 对数字的千分位处理
    • 法1
    • 法2
    • 法3
  • 格式化千分位数字
    • 2.7版本以上直接用format设置千分位分隔符
    • 正则实现

对数字的千分位处理

法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)(?=(?:\d\d\d)+$)", ",", subject)
>>> result
'1,234,567'

法3

>>> import re
>>> subject = '1234567'
>>> result = re.sub(r"(\d)(?=(\d\d\d)+(?!\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})((:?,\d\d\d)*)$",r"\1,\2\3",s)
        if count == 0 : break
    return s
print strConv(12345)

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。