代码: 全选
#!/usr/bin/env python
# -*- encoding: UTF-8 -*-
import sys
def amt2chn(amt):
mnUnit = ("分", "角", "元")
fixWord = ("整", "负", "人民币")
chUnit = ("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿")
chCapt = ("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
chn = fixWord[2]
iLen = 0
iLen2 = 0
iNum = 0
iAdd0 = 0
s_amt = str(int(amt*100.0))
iLen = len(s_amt)
if ( amt < 0.00 ):
chn += fixWord[1]
s_amt = s_amt[1:]
iLen -= 1
for i in range(iLen):
iNum = int(s_amt[i])
iLen2 = iLen - i - 1
if ( 0 == iNum):
if ( (iLen2-2)%4==0 and (iLen2-3)>0 and ((iLen2>=8) or iAdd0<3) ):
chn += chUnit[(iLen2-3)%8]
iAdd0 += 1
else:
if ( iLen>1 and iLen2==0 and iAdd0>0 ):
chn += chCapt[0]
if ( (iAdd0 and iLen2>=2) and
((iLen2-1)%4!=0) or (iAdd0>=4 and (iLen2-1)>0) ):
chn += chCapt[0]
chn += chCapt[iNum]
iAdd0 = 0
if ( (iAdd0<1) or (iLen2==2) ):
if( iLen2>=3 ):
chn += chUnit[(iLen2-3)%8]
else:
chn += mnUnit[(iLen2)%3]
l_chn = len(chn) - len(fixWord[2])
l_chn = int(l_chn/1.5)
if( l_chn+(amt<0.00 and (-2) or 0) == 0 ):
chn += chCapt[0]
chn += mnUnit[2]
chn += fixWord[0]
elif ( s_amt[iLen-1] == '0' ):
chn += fixWord[0]
return chn
if __name__ == '__main__':
if len(sys.argv) < 2:
amt = 123456.789
else:
amt = float(sys.argv[1])
print amt, ':', amt2chn(amt)