谁有人民币转大写的代码?谢谢(100分)

  • 主题发起人 主题发起人 PoeChan
  • 开始时间 开始时间
P

PoeChan

Unregistered / Unconfirmed
GUEST, unregistred user!
急需!!!
 
Function TFormFhdCw.XxToDx(const hjnum:real):String;
var Vstr,zzz,cc,cc1,Presult:string;
xxbb:array[1..12]of string;
uppna:array[0..9] of string;
iCount,iZero,vPoint,vdtlno:integer;
begin
//*设置大写中文数字和相应单位数组*//
xxbb[1]:='亿';
xxbb[2]:='仟';
xxbb[3]:='佰';
xxbb[4]:='拾';
xxbb[5]:='万';
xxbb[6]:='仟';
xxbb[7]:='佰';
xxbb[8]:='拾';
xxbb[9]:='元';
xxbb[10]:='.';
xxbb[11]:='角';
xxbb[12]:='分';
uppna[0]:='零';
uppna[1]:='壹';
uppna[2]:='贰';
uppna[3]:='叁';
uppna[4]:='肆';
uppna[5]:='伍';
uppna[6]:='陆';
uppna[7]:='柒';
uppna[8]:='捌';
uppna[9]:='玖';
Str(hjnum:12:2,Vstr);
cc:='';
cc1:='';
zzz:='';
result:='';
presult:='';
iZero:=0;
vPoint:=0;
for iCount:=1 to 10 do
begin
cc:=Vstr[iCount];
if cc<>' ' then
begin
zzz:=xxbb[iCount];
if cc='0' then
begin
if iZero<1 then //*对“零”进行判断*//
cc:='零'
else
cc:='';
if iCount=5 then //*对万位“零”的处理*//
if copy(result,length(result)-1,2)='零' then
result:=copy(result,1,length(result)-2)+xxbb[iCount]
+'零'
else
result:=result+xxbb[iCount];
cc1:=cc;
zzz:='';
iZero:=iZero+1;
end
else
begin
if cc='.' then
begin
cc:='';
if (cc1='') or (cc1='零') then
begin
Presult:=copy(result,1,Length(result)-2);
result:=Presult;
iZero:=15;
end;
if iZero>=1 then
zzz:=xxbb[9]
else
zzz:='';
vPoint:=1;
end
else
begin
iZero:=0;
cc:=uppna[StrToInt(cc)];
end
end;
result:=result+(cc+zzz)
end;
end;
If Vstr[11]='0' then //*对小数点后两位进行处理*//
begin
if Vstr[12]<>'0' then
begin
cc:='零';
result:=result+cc;
cc:=uppna[StrToInt(Vstr[12])];
result:=result+(uppna[0]+cc+xxbb[12]);
end
end
else
begin
if iZero=15 then
begin
cc:='零';
result:=result+cc;
end;
cc:=uppna[StrToInt(Vstr[11])];
result:=result+(cc+xxbb[11]);
if Vstr[12]<>'0' then
begin
cc:=uppna[StrToInt(Vstr[12])];
result:=result+(cc+xxbb[12]);
end;
end;
result:=result+'正';
end;
 
function smalltobig(small:real):string;
var smallmonth,bigmonth:string;
wei1,qianwei1:string[2];
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;
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;
//调用
procedure TForm1.Button1Click(Sender: TObject);
begin
label2.Caption:=smalltobig(strtofloat(edit1.text));
end;
 
to 四库全书:你给的代码不好,你试试100000.01
 
to 施海鹏
也不该给你分的:试试 0.9
 
后退
顶部