源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python将人民币转换大写的脚本代码

  • 时间:2020-06-14 04:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python将人民币转换大写的脚本代码
[u]复制代码[/u] 代码如下:
def Num2MoneyFormat( change_number ):     """     .转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )     change_number 支持 float, int, long, string     """     format_word = ["分", "角", "元",                "拾","百","千","万",                "拾","百","千","亿",                "拾","百","千","万",                "拾","百","千","兆"]     format_num = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]     if type( change_number ) == str:         # - 如果是字符串,先尝试转换成float或int.         if '.' in change_number:             try:    change_number = float( change_number )             except: raise ValueError, '%s   can\'t change'%change_number         else:             try:    change_number = int( change_number )             except: raise ValueError, '%s   can\'t change'%change_number     if type( change_number ) == float:         real_numbers = []         for i in range( len( format_word ) - 3, -3, -1 ):             if change_number >= 10 ** i or i < 1:                 real_numbers.append( int( round( change_number/( 10**i ), 2) ) )     elif isinstance( change_number, (int, long) ):         real_numbers = [ int( i ) for i in str( change_number ) + '00' ]     else:         raise ValueError, '%s   can\'t change'%change_number     zflag = 0                       #标记连续0次数,以删除万字,或适时插入零字     start = len(real_numbers) - 3     change_words = []     for i in range(start, -3, -1):  #使i对应实际位数,负数为角分         if 0 <> real_numbers[start-i] or len(change_words) == 0:             if zflag:                 change_words.append(format_num[0])                 zflag = 0             change_words.append( format_num[ real_numbers[ start - i ] ] )             change_words.append(format_word[i+2])         elif 0 == i or (0 == i%4 and zflag < 3):    #控制 万/元             change_words.append(format_word[i+2])             zflag = 0         else:             zflag += 1     if change_words[-1] not in ( format_word[0], format_word[1]):         # - 最后两位非"角,分"则补"整"         change_words.append("整")     return ''.join(change_words)
Python 把金额小写转换成大写2 功能将小于十万亿元的小写金额转换为大写
[u]复制代码[/u] 代码如下:
  def IIf( b, s1, s2):   if b:     return s1   else:     return s2 def num2chn(nin=None):     cs = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖','◇','分','角','圆','拾','佰','仟', '万','拾','佰','仟','亿','拾','佰','仟','万')     st = ''; st1=''     s = '%0.2f' % (nin)         sln =len(s)     if sln >; 15: return None     fg = (nin<1)     for i in range(0, sln-3):         ns = ord(s[sln-i-4]) - ord('0')         st=IIf((ns==0)and(fg or (i==8)or(i==4)or(i==0)), '', cs[ns])       + IIf((ns==0)and((i<>;8)and(i<>;4)and(i<>;0)or fg and(i==0)),'', cs[i+13])       + st         fg = (ns==0)     fg = False     for i in [1,2]:         ns = ord(s[sln-i]) - ord('0')         st1 = IIf((ns==0)and((i==1)or(i==2)and(fg or (nin<1))), '', cs[ns])        + IIf((ns>;0), cs[i+10], IIf((i==2) or fg, '', '整'))        + st1         fg = (ns==0)     st.replace('亿万','万')     return IIf( nin==0, '零', st + st1) if __name__ == '__main__':   num = 12340.1   print num   print num2chn(num)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部