对数字的千分位处理
法1
1
2
3
4
5
|
>>> "{:,}" . format ( 56381779049 ) '56,381,779,049' >>> "{:,}" . format ( 56381779049.1 ) '56,381,779,049.1' >>> |
法2
1
2
3
4
5
|
>>> import re >>> subject = '1234567' >>> result = re.sub(r "(?<=\d)(?=(?:\d\d\d)+$)" , "," , subject) >>> result '1,234,567' |
法3
1
2
3
4
5
|
>>> import re >>> subject = '1234567' >>> result = re.sub(r "(\d)(?=(\d\d\d)+(?!\d))" , r "\1," , subject) >>> result '1,234,567' |
格式化千分位数字
2.7版本以上直接用format设置千分位分隔符
1
2
3
4
5
6
|
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' >>> |
正则实现
1
2
3
4
5
6
7
8
|
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 ) |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/guaguastd/article/details/42549267