数字转成人民币格式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