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 數...