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)
def number_format(num, places=0): """Format a number according to locality and given places""" locale.setlocale(locale.LC_ALL, "") return locale.format("%.*f", (places, num), True) >>> import locale >>> number_format(12345678.123) '12,345,678' >>> number_format(12345678.123, 2) '12,345,678.12' >>> import locale >>> a = {'size': 123456789, 'unit': 'bytes'} >>> print(locale.format("%(size).2f", a, 1)) 123456789.00 >>> locale.setlocale(locale.LC_ALL, '') # Set the locale for your system 'en_US.UTF-8' >>> print(locale.format("%(size).2f", a, 1)) 123,456,789.00
>>> s = "1234567890" >>> s = s[::-1] >>> a = [s[i:i+3] for i in range(0,len(s),3)] >>> print (",".join(a))[::-1]
perl -e '$size = "1234567890";while($size =~ s/(\d)(\d{3})((:?,\d\d\d)*)$/$1,$2$3/){};print $size, "\n";' 1,234,567,890
echo 12345|sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' 12,345
printf "%'d\n" 12345 12,345
parseInt('123456789456.34').toLocaleString() "123,456,789,456"
Intl.NumberFormat().format(1234.1235); "1,234.124"
function addCommas(n){ var rx= /(\d+)(\d{3})/; return String(n).replace(/^\d+/, function(w){ while(rx.test(w)){ w= w.replace(rx, '$1,$2'); } return w; }); } addCommas('123456789456.34'); "123,456,789,456.34" '12345678.34'.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") "12,345,678.34"
注:某些方法不支持小数部分或者小数部分四舍五入,请慎用。
[1] shell、perl、python 千分位 逗号分隔符输出
http://wenzhang.baidu.com/page/view?key=4f73729cefd8af8c-1426633956
[2] How do I add a thousand seperator to a number in JavaScript? [duplicate]
http://stackoverflow.com/questions/9743038/how-do-i-add-a-thousand-seperator-to-a-number-in-javascript
[3] How to print a number with commas as thousands separators in JavaScript
http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript