oracle 如何得到人民幣的大寫形式

2021-04-23 23:44:18 字數 2525 閱讀 1147

create or replace function getbigmoneystr(money in number) return varchar2 is

tmp_str   varchar2(20);

money_str varchar2(20);

val_j     varchar2(20);

len_j     number;

k         number;

i         number;

j         number;

m         number;

result    varchar2(40);

type my_type is varray(20) of varchar2(4);

num     constant my_type := my_type('1',

'2',

'3',

'4',

'5',

'6',

'7',

'8',

'9',

'0');

num_str constant my_type := my_type('壹',

'貳',

'叄',

'肆',

'伍',

'陸',

'柒',

'捌',

'玖',

'零');

begin

tmp_str := to_char(money * 100);

len_j   := length(tmp_str);

k       := 11 - len_j;

result  := substr(tmp_str, 1, 1);

m       := 2;

for i in 1 .. len_j loop

begin

if k = 1 then

money_str := '仟';

elsif k = 2 then

money_str := '佰';

elsif k = 3 then

money_str := '拾';

elsif k = 4 then

money_str := '萬';

elsif k = 5 then

money_str := '仟';

elsif k = 6 then

money_str := '佰';

elsif k = 7 then

money_str := '拾';

elsif k = 8 then

money_str := '元';

elsif k = 9 then

money_str := '角';

elsif k = 10 then

money_str := '分';

end if;

k     := k + 1;

m     := i + 1;

val_j := nvl(substr(tmp_str, m, 1), '');

if len_j = m + 5 and substr(result, length(result), 1) = '0' then

result := substr(result, 0, length(result) - 1) || '萬0';

end if;

if len_j = m + 1 and substr(result, length(result), 1) = '0' then

result := substr(result, 0, length(result) - 1) || '元0';

end if;

if val_j = '0' and substr(result, length(result), 1) = '0' then

goto theend;

end if;

if substr(result, length(result), 1) != '0' then

result := result || money_str;

end if;

result := result || val_j;

<>

null;

end;

end loop;

--除去最後的0

for j in 1 .. 3 loop

begin

if substr(result, length(result), 1) = '0' then

result := substr(result, 0, length(result) - 1);

end if;

end;

end loop;

for i in 1 .. 10 loop

result := replace(result, num(i), num_str(i));

end loop;

return result;

end;

來自:http://jametong.itpub.net/category/5042/9386

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

第乙個辦法,這個程式可以進行萬億以下的貨幣金額轉換 夠用的了吧 其中漢字與數字均按一位計 function atoc a as currency as string 定義兩個字串,a的值最多是兩位小數.dim string1 as string 如下定義.dim string2 as string ...

分享乙個用php寫的人民幣數字轉人民幣大寫的函式

時候我們需要在應用程式中使用隨機生成使用者名稱和密碼,這樣可以大大提高應用程式的安全,在php中生成隨機使用者名稱和密碼可以使用 mt rand 函式或者是 rand 函式,rand 函式在驗證碼中的應用多一些,而生成長字元的隨機碼一般都需要 mt rand 函式。使用php生成隨機數可以應用在許多...

人民幣公升值和貶值的影響

假設人民幣公升值前,1美元兌換10元人民幣,即1美元 10元人民幣。現在人民幣公升值後,1美元兌換7元人民幣,即1美元 7元人民幣。以前要人民幣10元才能換1美元,現在用人民幣7元就能換1美元,人民幣是不是公升值了。假設你準備用10萬人民幣出國學習或旅遊。公升值前可換1萬美元,即10萬 10 1萬。...