数字转成人民币格式python

实现的方式

确定逗号的个数,然后将逗号填充

逗号个数确定的思路

  • 字符串长度对三分别求出商数n和余数r
  • 如果余数r=0,逗号的个数就是n-1,否则就是n
def numToRMB(num):
    if not num:
        return '0.00'

    num=str(num)
    ret=num.find('.')
    if ret!=-1:
        num2=num[:ret]
    else:
        num2=num
    n=len(num2)/3
    r=len(num2)%3
    # print r
    if r==0:
        n=n-1
    # print n
    result=""
    if n>0:#30000
        if r!=0:
            result=num2[:r]
            num2=num2[r:]
        else:
            result=num2[:3]
            num2=num2[3:]

        for i in range(n):
            result+=','+num2[ i*3:(i+1)*3]


        return result+".00"
    else:
        return  num2+".00"

for i in range(18):
    num="3"*(i+1)
    print num+"     " +numToRMB(num)

测试结果

3     3.00
33     33.00
333     333.00
3333     3,333.00
33333     33,333.00
333333     333,333.00
3333333     3,333,333.00
33333333     33,333,333.00
333333333     333,333,333.00
3333333333     3,333,333,333.00
33333333333     33,333,333,333.00
333333333333     333,333,333,333.00
3333333333333     3,333,333,333,333.00
33333333333333     33,333,333,333,333.00
333333333333333     333,333,333,333,333.00
3333333333333333     3,333,333,333,333,333.00
33333333333333333     33,333,333,333,333,333.00
333333333333333333     333,333,333,333,333,333.00

posted @ 2019-04-21 19:49  随时静听  阅读(1219)  评论(0编辑  收藏  举报