程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> delphi實現小寫金額轉換

delphi實現小寫金額轉換

編輯:Delphi

財務軟件中總少不了大寫的金額表示方式,如下為一個簡單的小寫金額轉換為大寫的函數,其思路簡單(可以說爛吧,居然利用了位置來轉換),但是它卻幾乎可以無限制的轉換,只要你能讀得出來和寫得進去:

function Tform1.SmallTOBig(small:real):string;
var SmallMonth,BigMonth:string;
wei1,qianwei1:string[2];
wei,qianwei,dianweizhi,qian:integer;
begin
{------- 修改參數令值更精確 -------}
{小數點後的位數,需要的話也可以改動該值}
qianwei:=-2; {轉換成貨幣形式,需要的話小數點後加多幾個零}
Smallmonth:=formatfloat(0.00,small);
{---------------------------------}
dianweizhi :=pos(.,Smallmonth);{小數點的位置}
{循環小寫貨幣的每一位,從小寫的右邊位置到左邊}
for qian:=length(Smallmonth) downto 1 do
begin
{如果讀到的不是小數點就繼續}
if qian<>dianweizhi then
begin
{位置上的數轉換成大寫}
case strtoint(copy(Smallmonth,qian,1)) of
1:wei1:=壹; 2:wei1:=貳;
3:wei1:=三; 4:wei1:=肆;
5:wei1:=伍; 6:wei1:=陸;
7:wei1:=柒; 8:wei1:=捌;
9:wei1:=玖; 0:wei1:=零;
end;
{判斷大寫位置,可以繼續增大到real類型的最大值,可是誰有那麼多錢}
case qianwei of
-3:qianwei1:=厘;
-2:qianwei1:=分;
-1:qianwei1:=角;
0 :qianwei1:=元;
1 :qianwei1:=拾;
2 :qianwei1:=佰;
3 :qianwei1:=千;
4 :qianwei1:=萬;
5 :qianwei1:=拾;
6 :qianwei1:=佰;
7 :qianwei1:=千;
8 :qianwei1:=億;
9 :qianwei1:=十;
10:qianwei1:=佰;
11:qianwei1:=千;
end;
inc(qianwei);
BigMonth :=wei1+qianwei1+BigMonth;{組合成大寫金額}
end;
end;
SmallTOBig:=BigMonth;
end;

程序調用如下“edit1.text:=SmallTOBig(1234567890.1234);”他自動默認小數點後兩位。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved