虫虫技术在线--技术决定出路

当前位置: 首页 > 编程 > Python >

把金额小写转换成大写的Python代码

时间:2010-02-19 15:20来源:未知 作者:admin 点击:
功能将小于十万亿元的小写金额转换为大写 代码 CODE: def IIf(b,s1,s2): if b: return s1 else : return s2 def num2chn(nin= None ): cs= ( '零' , '壹' , '贰' , '叁' , '肆' , '伍' , '陆' , '柒' , '捌' , '玖' , '◇' ,

  功能将小于十万亿元的小写金额转换为大写

  代码

  CODE:

 

  1.   def IIf( b, s1, s2):  
  2.   if b:  
  3.     return s1  
  4.   else:  
  5.     return s2  
  6. def num2chn(nin=None):  
  7.     cs =  
  8. ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖','◇','分','角','圆','拾','佰','仟',  
  9. '万','拾','佰','仟','亿','拾','佰','仟','万')  
  10.     st = ''; st1='' 
  11.     s = '%0.2f' % (nin)      
  12.     sln =len(s)  
  13.     if sln >; 15return None 
  14.     fg = (nin<1)  
  15.     for i in range(0, sln-3):  
  16.         ns = ord(s[sln-i-4]) - ord('0')  
  17.         st=IIf((ns==0)and(fg or (i==8)or(i==4)or(i==0)), '', cs[ns])  
  18.       + IIf((ns==0)and((i<>;8)and(i<>;4)and(i<>;0)or fg  
  19. and(i==0)),'', cs[i+13])  
  20.       + st  
  21.         fg = (ns==0)  
  22.     fg = False 
  23.     for i in [1,2]:  
  24.         ns = ord(s[sln-i]) - ord('0')  
  25.         st1 = IIf((ns==0)and((i==1)or(i==2)and(fg or (nin<1))), '', cs[ns])  
  26.        + IIf((ns>;0), cs[i+10], IIf((i==2or fg, '''整'))  
  27.        + st1  
  28.         fg = (ns==0)  
  29.     st.replace('亿万','万')  
  30.     return IIf( nin==0'零', st + st1)  
  31. if __name__ == '__main__':  
  32.   num = 12340.1 
  33.   print num  
  34.   print num2chn(num)  
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容