用Delphi编制金额大写转换程序

最亮的亮星

最亮的亮星

2016-01-29 14:16

用Delphi编制金额大写转换程序,用Delphi编制金额大写转换程序
 

  在从事与财务相关的软件开发过程中,通常要求将小写金额转换成相应的大写金额,并打印在大写金额栏中。下面是用Delphi3.0编制的一个转换函数,能够方便的在程序中调用,并返回字符串。

  1.定义函数num—str

  function num—str(ls: Variant): String;

  var

   dx—sz,dx—dw,str—int,str—dec,dx—str,fu:string;

   a,b,b2,c,d:string;

   num—int,num—dec,len—int,i,a—int,pp:integer;

  //dx—str为返回字符串

  begin

  dx—sz:=′零壹贰叁肆伍陆柒捌玖′;

  dx—dw:=′万仟佰拾亿仟佰拾万仟佰拾元′;

  //处理金额小于零情况

  if ls〈0 then

  begin

   ls:=ls(-1);

   fu:=′负′;

  end else fu:=′′;

  //取得整数值及整数串

  dx—str:=ls;

  if (ls〉0)and(ls〈1) then dx—str:=′0′+dx—str;

  pp:=pos(′.′,dx—str);

  if pp〉0 then str—int:=copy(dx—str,1,pos(′.′,dx—str)-1)

  else str—int:=dx—str;

  num—int:=strtoint(str—int);

  //取得小数值及小数串

  if (ls〉0)and(ls〈1) then num—dec:=ls100

  else num—dec:=(ls-num—int)100;

  str—dec:=inttostr(num—dec);

  len—int:=Length(str—int);

   dx—str:=′′;

  //转换整数部分

   for i:=1 to len—int do

   begin

  //a为小写数字字符,b为对应的大写字符

  //c为对应大写单位,d为当前大写字符串的最后一个汉字

   a:=copy(str—int,i,1);

   a—int:=strtoint(a);

   b:=copy(dx—sz,(a—int2+1),2);

   c:=copy(dx—dw,((13-len—int+i-1)2+1),2);

   if dx—str〈〉′′ then

   d:=copy(dx—str,Length(dx—str)-1,2)

   else d:=′′;

   if (b=′零′)and((d=′零′)or(b=b2)or(c=′元′)or(c=′万′)or(c=′亿′)) then b:=′′;

   if (a=′0′)and(c〈〉′元′)and(c〈〉万′′)and(c〈〉′亿′) then c:=′′;

   if ((c=′元′)or(c=′万′)or(c=′亿′))and (d=′零′)and(a=′0′) then

   begin

   dx—str:=copy(dx—str,1,Length(dx—str)-2);

   d:=copy(dx—str,Length(dx—str)-1,2);

   if ((c=′元′)and(d=′万′))or((c=′万′)and(d=′亿′)) then c:=′′;

   end;

   dx—str:=dx—str+b+c; b2:=b;

   end;

  //处理金额小于1的情况

  if Length(dx—str)〈=2 then dx—str:=′′;

  //转换小数部分

  if (num—dec〈10)and(ls〉0) then

  begin

  a—int:=strtoint(str—dec);

  b:=copy(dx—sz,(a—int2+1),2);

  if num—dec=0 then dx—str:=dx—str+′整′;

  if num—dec〉0 then dx—str:=dx—str+′零′+b+′分′;

  end;

  if num—dec〉=10 then

  begin

  a—int:=strtoint(copy(str—dec,1,1));

  a:=copy(dx—sz,(a—int2+1),2);

  a—int:=strtoint(copy(str—dec,2,1));

  b:=copy(dx—sz,(a—int2+1),2);

  if a〈〉′零′ then a:=a+′角′;

  if b〈〉′零′ then b:=b+′分′

  else b:=′′;

  dx—str:=dx—str+a+b;

   end;

   if ls=0 then dx—str:=′零元整′;

   dx—str:=fu+dx—str;

  //函数返回字符串

   Result:=dx—str;

  end;

  2.调用方法

  函数参数采用Variant类型,调用时参数值可以是实型,也可以是字符串,非常方便,下面举例说明:

  新建窗口,在相应pas文件中加入num—str函数,并在窗口中添加Button1和Edit1、Edit2控件,双击Button1输入以下代码,运行程序即可:

   procedure TForm1.Button1Click(Sender: TObject);

   begin

   Edit1.text:=num—str(202055010.32);

   //也可以在Edit2中输入数串调用

   //Edit1.text:=num—str(Edit2.text);

   end;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/delphi/) 
展开更多 50%)
分享

猜你喜欢

用Delphi编制金额大写转换程序

Delphi
用Delphi编制金额大写转换程序

金额大写转换

编程语言 网络编程
金额大写转换

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

delphi编程小写金额转换

编程语言 网络编程
delphi编程小写金额转换

Excel人民币小写金额转换大写技巧

电脑入门
Excel人民币小写金额转换大写技巧

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

小写转大写金额

SQLServer
小写转大写金额

利用Delphi编制IP地址转换器

Delphi
利用Delphi编制IP地址转换器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

基于PHP的聊天室(一)

基于PHP的聊天室(一)

在Delphi中定位文件位置

在Delphi中定位文件位置
下拉加载更多内容 ↓