如何實現人民幣的大寫轉換?

2022-09-26 02:03:07 字數 2987 閱讀 7078

第乙個辦法,這個程式可以進行萬億以下的貨幣金額轉換(夠用的了吧),其中漢字與數字均按一位計:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

function atoc(a as currency) as string

' 定義兩個字串,a的值最多是兩位小數.

dim string1 as string 

' 如下定義.

dim string2 as string 

' 如下定義.

dim string3 as string 

' 從原a值中取出的值.

dim i as integer       

' 迴圈變數.

dim j as integer       

' a的值乘以100的字串長度.

dim ch1 as string     

' 數字的漢語讀法.

dim ch2 as string     

' 數字位的漢字讀法.

dim nzero as integer   

' 用來計算連續的非零數是幾個.

string1 = "零壹貳叄肆伍陸柒捌玖"

string2 = "萬仟佰拾億仟佰拾萬仟佰拾元角分"

'msgbox cstr(a * 100)

if instr(1, cstr(a * 100), ".") <> 0 then

err.raise 5000, , "該函式( atoc() )只轉換兩位小數以內的數值!"

end if

j = len(cstr(a * 100))

string2 = right(string2, j)       

' 取出對應位數的string2的值.

for i = 1 to j

string3 = mid(a * 100, i, 1)   

' 取出需轉換的某一位的值.

if string3 &www.cppcns.comlt;> "0" then

ch1 = mid(string1, val(string3) + 1, 1)

ch2 = mid(string2, i, 1)

nzero = nzero + 1         

' 表示本位不為零.

else

if nzero <> 0 or i = j - 9 or i = j - 5 or i = j - 1 then

&程式設計客棧nbsp;             if right(atoc, 1) = "零" then atoc = left(atoc, len(atoc) - 1)

ch1 = "零"

&程式設計客棧nbsp; else

ch1 = ""

end if

if i = j - 10 then

' 如果轉換的數值需要擴大,則要改動以下表示式 i 的值.

ch2 = "億"

elseif i = j - 6 then

if nzero <> 0 then

ch2 = "萬"

'                    nzero = 0

end if

elseif i = j - 2 then

ch2 = "元"

elseif i = j then

ch2 = "整"

else

ch2 = ""

end if

nzero = 0

end if

atoc = atoc & ch1 & ch2

next i

atoc = replace(atoc, "零元", "元")

atoc = replace(atoc, "零萬", "萬")

atoc = replace(atoc, "零億", "億")

atoc = replace(atoc, "零整", "整程式設計客棧")

' 以上將多餘的零去掉

end function

第二個辦法:照下面寫就成了!

dim str(9)

str(0)="零"

str(1)="壹"

str(2)="貳"

str(3)="叄"

str(4)="肆"

str(5)="伍"

str(6)="陸"

str(7)="柒"

str(8)="捌"

str(9)="玖"

aa=request.form("source")

hh=formatnumber(aa,2,-1)

aa=replace(hh,".","")

aa=replace(aa,",","")

for i=1 to len(aa)

s=mid(aa,i,1)

mynum=str(s)

select case(len(aa)+1-i)

case 1: k= mynum&"分"

case 2: k= mynum&"角"

case 3: k= mynum&"元"

case 4: k= mynum&"拾"

case 5: k= mynum&"佰"

case 6: k= mynum&"仟"

case 7: k= mynum&"萬"

case 8: k= mynum&"拾"

case 9: k= mynum&"佰"

case 10: k= mynum&"仟"

end select

m=m&k

next

%>

精彩春風之數字大小寫轉換

'; mso-hansi-font-family: ''">分"

case 2: p= mynum&"角"

end select

m=m&p

next

-->

本文標題: 如何實現人民幣的大寫轉換?

本文位址:

人民幣大寫轉換

人民幣大寫轉換 param numbervalue 人民幣小寫 return rmbcapital function numbervalue var chinesevalue 轉換後的漢字金額 var string1 零壹貳叄肆伍陸柒捌玖 漢字數字 var string2 萬仟佰拾億仟佰拾萬仟佰拾元...

python實現人民幣大寫轉換

usr bin python coding utf 8 轉換方法介紹 將需要轉換的數字從右向左,每4位分成乙個section,如 24530467103,將該數字拆分後,得到 245 3046 7103 245億3046萬7103 對拆分後的數字先按照section進行數字到漢字的轉換,然後新增數值...

pascal 人民幣大寫轉換

我們在程式設計的過程中,特別是開發和財務相關的應用程式的時候,幾乎都會遇到要將阿拉伯數字 一般是貨幣金額 轉換為中文大寫的要求。也有一些轉換程式,但大都不符合財務實際要求,比如最簡單的 function xd xx currency string var dx,ws string i,cd inte...