python 數字金額轉化

2021-07-10 15:44:46 字數 3045 閱讀 9289

import re

dict=

dict1=

dict2=

def deepdone(word,begin):

index=word.find('零',begin)

#處理 零元  這種特殊情況

if(word=='零元'):

return word

if(index==-1):

return word

else:

if(word[index+1]=='元'):

word=word[0:index]+word[index:].replace(word[index], '', 1)

return word

#處理 大數字 拾萬  百萬的情況

if(word[index+3]=='零'):

word=word[0:index]+word[index:].replace(word[index:index+3],'',1)

word=deepdone(word,index)

return word

if(word[index+2]!='零'):            #壹佰零拾玖元

#壹佰零玖元

word=word[0:index]+word[index:].replace(word[index+1],'',1)

word=deepdone(word,index+1)

else:

word=word[0:index]+word[index:].replace(word[index:index+2],'',1)

#壹千壹百零拾零元

word=deepdone(word,index)

return word

'''除去多餘的萬字

'''def deepdone2(word,key):

word=word[::-1]

index=word.find(key)

if (index==-1):

return word[::-1]

word=word[0:index+1]+word[index+1:].replace(key,'',3)

return word[::-1]

def numtochn1(str_num):

word='元'

i=0for one in str_num[::-1]:

num_dict=dict[one]         #數字大寫

word_dict=dict1[str(i)]     #單位大寫

word=word+word_dict+num_dict

i+=1

word=word[::-1]  #對word做進一步的調整

word=deepdone(word,0) # 對word進下一步處理 ,0 為word 中的位置

word=deepdone2(word,'萬')  #對word進下一步處理,從後向前數,保留第乙個 「萬」字

word=deepdone2(word,'億')  #對word進下一步處理,從後向前數,保留第乙個 「億」字

return  word

def numtochn2(str_num):

i=0word=''

for one in str_num:

num_dict=dict[one]

word_dict=dict2[str(i)]

if (num_dict=='零'):

word_dict=''

if i==1:

num_dict=''

i+=1

word=word+num_dict+word_dict

return word

def numtochn(num):

word=''

arr=

str_num=str(num)

postion=str_num.find(".")

if((postion)==-1):   #沒有 .  的情況

word=numtochn1(str_num)

word='人民幣'+word+'整'

else:

arr=str_num.split(".",1)

word=numtochn1(arr[0])

if(arr[1]=='00'):

word='人民幣'+word+'整'

else:

word2=numtochn2(arr[1])

word='人民幣'+word+word2

return word

'''對輸入 進行一些處理:防止 異常的輸入

形式應該是這樣的: ***x.xx

'''def  myinput():

num=input("請輸入您想轉化的數字:\n")

#pattern=re.compile(r'^(([0-9]+)|([0-9]+\.[0-9]))$')

pattern=re.compile(r'^[1-9]\d*(\.[0-9])?$|^0(\.[0-9])?$')

# [1-9] 第乙個數字為 1~9

# \d *  然後 0~9 這些字元的 0個或者多個

# (\.[0-9])  小數點後面 一位 或者兩位

# ?  代表可選 或者不可選

# |   或者

# 匹配 0.01  0.98 這類的數字

match=pattern.search(num)

if match:

print('result: ',num)

else:

print('重新輸入你的數字形式應該是這樣的: ***x.xx:\n')

return -1

return num

if __name__=='__main__':

#num=input("請輸入您想轉化的數字:\n")

num=myinput()

while((num==-1)):

num=myinput()

print('你輸入的數字為:',num)

word=numtochn(num)

print(word)

數字金額轉化大寫金額

數字金額轉化大寫金額 param val string number 字串可包含 和多餘的0 returns 原生方法 如下所示 function convertcurrency money if typeof money string if money maxnum if money 0 轉換為字...

數字金額轉化為大寫金額

create or replace function fn getmoneytochina p money in number return varchar2 is 功能 數字金額轉化為漢字金額 最大支援金額 9999999999999999.99 支援千萬億的任何金額 小數點支援2位 type m...

js轉化數字金額為大寫金額

js轉化數字金額為大寫金額 為了不想匯入jq檔案,現在使用原js。1 html 預估金額 金額大寫 2.js function sendnummoney var p1 0 9 d if p.test money p1.test money arabiaconverttochinese money 數...