function ChinaTotal(Aje:Double):string; var s_1,s_2:widestring; s_5:char; s_4:string; i:integer; mm:string; s_6,s_7:widestring; begin s_4:=Format('%10d',[Trunc(aje*100)]); s_1:='ÁãÒ¼·¡ÈþËÁÎé½Æâ°Æ¾Á'; s_2:='Ǫ°ÛÊ°ÍòǪ°ÛÊ°Ôª½Ç·Ö'; i:=1; mm:=''; while i<=10 do begin s_5:=s_4[i]; if s_5<>' ' then begin s_6:=s_1[ord(s_5)-ORD('0')+1]; s_7:=s_2[i]; if (s_5='0') and (i<>4) and (i<>8) then s_7:=''; if (copy(s_4,i,2)='00') or ( (s_5='0') and (i in [4,8,10])) then s_6:=''; mm:=mm+s_6+s_7; if (s_4[i]='0') and ((s_4[i+1]<>'0') and (i in [4,8])) then mm:=mm+s_1[1]; end; inc(i); end ; if s_5='0' then mm:=mm+'Õû'; result:=mm; end;
怎么乱码了??重发一个。 function ChinaTotal(Aje:Double):string; var s_1,s_2:widestring; s_5:char; s_4:string; i:integer; mm:string; s_6,s_7:widestring; begin s_4:=Format('%10d',[Trunc(aje*100)]); s_1:='零壹贰叁肆误陆柒捌玖'; s_2:='仟佰拾万仟佰拾元角分'; i:=1; mm:=''; while i<=10 do begin s_5:=s_4[i]; if s_5<>' ' then begin s_6:=s_1[ord(s_5)-ORD('0')+1]; s_7:=s_2[i]; if (s_5='0') and (i<>4) and (i<>8) then s_7:=''; if (copy(s_4,i,2)='00') or ( (s_5='0') and (i in [4,8,10])) then s_6:=''; mm:=mm+s_6+s_7; if (s_4[i]='0') and ((s_4[i+1]<>'0') and (i in [4,8])) then mm:=mm+s_1[1]; end; inc(i); end ; if s_5='0' then mm:=mm+'整'; result:=mm; end;
金额大小写转换 function My_StrToRMB(curs :string) :string; implementationfunction My_StrToRMB(curs: string) :string ; var daxie,danwei,minuscurs:string; i,j,deccount :integer ; rmb :int64;begin curs:=trim(curs); if (curs='-') or (curs='.') or (curs='') then // '.','-',''错 begin result:='ERROR'; exit; end; deccount :=0; for i:=1 to length(curs) do begin if not (curs[i] in ['0'..'9','.','-']) then //'123w2'错 begin result:='ERROR'; exit; end; if (curs[i]='.') and (deccount>0) then //'12313.324.23'错 begin result:='ERROR'; exit; end; if (curs[i]='-') and (i>1) then //'-123-123'错 begin result:='ERROR'; exit; end; if curs[i]='.' then inc(deccount); end; rmb:=round(StrToFloat(curs)*100); minuscurs:=''; //负数标志 if rmb<0 then begin minuscurs:='(负数)' ; rmb:=(-1)*rmb; end; if rmb>=1E18 then //超过9千万亿 begin result:='ERROR'; exit; end; curs:=''; i:=0; j:=0 ; while rmb>0 do begin j:= rmb mod 10; case j of 0 : daxie :='零' ; 1 : daxie :='壹' ; 2 : daxie :='贰' ; 3 : daxie :='叁' ; 4 : daxie :='肆' ; 5 : daxie :='伍' ; 6 : daxie :='陆' ; 7 : daxie :='柒' ; 8 : daxie :='捌' ; 9 : daxie :='玖' ; end; case i of 0 : danwei :='分' ; 1 : danwei :='角' ; 2 : danwei :='圆' ; 3 : danwei :='拾' ; 4 : danwei :='佰' ; 5 : danwei :='仟' ; 6 : danwei :='万' ; 7 : danwei :='拾' ; 8 : danwei :='佰' ; 9 : danwei :='仟' ; 10 : danwei :='亿' ; 11 : danwei :='拾' ; 12 : danwei :='佰' ; 13 : danwei :='仟' ; 14 : danwei :='万' ; 15 : danwei :='拾' ; 16 : danwei :='佰' ; 17 : danwei :='仟' ; end; rmb:=rmb div 10; if j<>0 then curs:=daxie+danwei+curs; //该位上不为0 if (j=0) and (not (i in [2,6,10,14])) then //该位为0,是一般位 curs:=daxie+curs; if (j=0) and (i in [2,6,10,14]) then //该位为0,是敏感位 curs:=danwei+curs; inc(i); end; while pos('零零',curs)>0 do curs:=stringreplace(curs,'零零','零',[]); curs:=stringreplace(curs,'零圆','圆',[]); while pos('零万',curs)>0 do curs:=stringreplace(curs,'零万','万',[]); //上万亿后可能两个'零万' curs:=stringreplace(curs,'零亿','亿',[]); curs:=stringreplace(curs,'角零','角整',[]); if copy(curs,length(curs)-3,4)='圆零' then //最后两位是圆零. curs:=stringreplace(curs,'圆零','圆整',[]); //小数点后 curs:=stringreplace(curs,'亿万','亿',[]); result:=minuscurs+curs; end;
unit CapsDateMoney;interfaceuses Windows, SysUtils, Forms; const CapsDigi: array[0..9] of string = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'); CapsUnit: array[0..10] of string = ('分','角','元','拾','佰','仟','万','拾','佰','仟','亿');function CapsMoney(money:string):string;implementationfunction CapsMoney(money:string):string; var Temp: string; s,s1: string; i: integer; l: integer; begin Temp := ''; s := ''; s1 := ''; try s := FormatCurr('0.00',StrToCurr(money)); for i:= 1 to Length(s) do if s[i] <> '.' then s1 := s1 + s[i]; l:= Length(s1); for i:= 1 to l do begin if (s1[i] = '0') then begin if s1[i + 1] = '0' then Temp := Temp; if ((l - i = 2) or (l - i = 6)) then Temp := Temp + CapsUnit[l - i]; if ((s1[i + 1] <> '0') and (i<>l)) then Temp := Temp + CapsDigi[StrToInt(s1[i])]; if i = l then Temp := Temp + '整'; end else Temp := Temp + CapsDigi[StrToInt(s1[i])] + CapsUnit[Length(s1) - i]; end; except Application.MessageBox('数据转换错误,请重来!','错误',MB_OK + MB_ICONERROR); end; Result := Temp; end;
俺也现一丑function CovMoney(const money: Double): widestring; //小写金额转换成大写金额 const cN:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分'; cCha:array[0..1, 0..11]of string = (( '零仟','零佰','零拾','零零零','零零','零亿','零万','零元','亿万','零角','零分','零整'), ( '零','零','零','零','零','亿','万','元','亿','零','整','整')); var i :Integer; sNum :WideString; begin result := ''; sNum := FormatFloat('0',money*100); for i := 1 to Length(sNum) do result := result + cN[ord(sNum[i])-47] + cN[26-Length(sNum)+i]; for i:= 0 to 11 do //去掉多余的零 result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]); end;
///////////////// Function UPCaseMoney(Value: String): String; //字符串转换成实数 Function StrToSingle(const Value: String): Currency; var St,Data: String; i: Integer; begin Data := Value; if Pos('.',Data) = 1 then//如果是以.开头 Data := '0' + Data; if Pos('.',Data) <= 0 then//没有. Data := Data + '.00'; St := Copy(Data,0,Pos('.',Data) - 1);//截取整数部分 i := StrToInt(St); Result := i; St := Copy (Data,Pos('.',Data) + 1,2);//取小数部分 if Length(St) < 2 then//长度不足 St := St + '0'; i := StrToInt(St); Result := Result + (i/100); end; const Money: Array[0..15] of String = ('零', '壹', '贰', '参', '肆', '伍', '陆', '柒', '捌', '玖', '', '拾', '佰', '仟', '万', '亿' ); ConMoney: Array[0..2] of String = ('元', '角', '分'); var Str, Str1, St, IMon, //整数部分 FMon: String; //小数部分 Zero: Boolean; //是否有零 i, kk: Integer; Function StrToMoney(const Value: String; const Fen: Bool = False): String; var j: Integer; begin Result := ''; for j := 1 to Length(Value) do begin if Value[j] = '0' then begin Zero := True; Continue; end; if Zero then begin Zero := False; Result := Result + Money[0]; end; Result := Result + Money[StrToInt(Value[j])]; if Fen then Result := Result + ConMoney[j] else Result := Result + Money[10 + Length(Value) - j]; end; end; begin Str := Format('%2f', [StrToSingle(Value)]); Result := '零元整'; if Str = '0.00' then Exit; Result := ''; i := Pos('.', Str); IMon := Copy(Str, 0, i - 1); FMon := Copy(Str, i + 1, 2); Zero := False; for i := 0 to Length(IMon) DIV 9 + 1 do begin kk := ABS(Length(IMon) - (Length(IMon) DIV 9) * 9 + 1); Str1 := Copy(IMon, 0, kk); IMon := Copy(IMon, kk + 1, Length(IMon) - kk); if Length(Str1) <= 0 then Continue; if Length(Str1) > 4 then begin Str := Copy(Str1, 0, Length(Str1) - 4); Str1 := Copy(Str1, Length(Str1) - 3, 4); St := StrToMoney(Str); if St <> '' then Result := Result + St + Money[14]; end; Result := Result + StrToMoney(Str1); if Length(IMon) > 0 then Result := Result + Money[15]; end; Result := Result + ConMoney[0]; Zero := False; //Result := Result + StrToMoney(FMon, True) + '整'; //最后一行改成 St := StrToMoney(FMon, True); if St <> '' then if Pos(Money[0], St) <= 0 then Result := Result + Money[0] + St else // Result := Result + St; Result := Result else Result := Result + '整' end;
function Tform1.SmallTOBig(small:real):string; var SmallMonth,BigMonth:string; wei1,qianwei1:string[2]; wei,qianwei,dianweizhi,qian:integer; begin {------- 修改参数令值更精确 -------} qianwei:=-2;{小数点后的位置,需要的话也可以改动-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{判断大写位置,可以继续增大到real类型的最大值} -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; 我也贡献一个。
都来是吧,看:Function MaxtoMin(minje:string):string; var dx,dy,nn,cccc,dd,c,cc,lc:string; n,iii:integer; begin dx:='壹贰叁肆伍陆柒捌玖'; dy:='分角圆拾佰仟万拾佰仟亿拾佰'; nn:=trim(floattostr(strtofloat(minje)*100)); n:=length(nn); cccc:='整'; for iii:=1 to n do begin dd:=copy(dy,iii*2-1,2); c:=copy(nn,n-iii+1,1); if c<>'0' then begin cc:=copy(dx,(strtoint(c)*2 - 1),2); cccc:=trim(cc)+trim(dd)+trim(cccc); end else begin lc:=copy(trim(cccc),1,2); if ((iii=3) or (iii=7) or (iii=11)) then begin cccc:=trim(dd) + trim(cccc); continue; end; if ((lc<>'零') and (LC<>'整') and (LC<>'亿') and (LC<>'万') and (LC<>'圆')) then cccc:='零'+cccc; end; end; cccc:='合计:'+cccc; Result:=cccc;end; //调用: showmessage(MaxtoMin(trim('100')));
var
s_1,s_2:widestring;
s_5:char;
s_4:string;
i:integer;
mm:string;
s_6,s_7:widestring;
begin
s_4:=Format('%10d',[Trunc(aje*100)]);
s_1:='ÁãÒ¼·¡ÈþËÁÎé½Æâ°Æ¾Á';
s_2:='Ǫ°ÛÊ°ÍòǪ°ÛÊ°Ôª½Ç·Ö';
i:=1;
mm:='';
while i<=10 do
begin
s_5:=s_4[i];
if s_5<>' ' then
begin
s_6:=s_1[ord(s_5)-ORD('0')+1];
s_7:=s_2[i];
if (s_5='0') and (i<>4) and (i<>8) then
s_7:='';
if (copy(s_4,i,2)='00') or ( (s_5='0') and (i in [4,8,10])) then
s_6:='';
mm:=mm+s_6+s_7;
if (s_4[i]='0') and ((s_4[i+1]<>'0') and (i in [4,8])) then
mm:=mm+s_1[1];
end;
inc(i);
end ;
if s_5='0' then mm:=mm+'Õû';
result:=mm;
end;
在论坛上搜索一下,很多关于这样的贴
function ChinaTotal(Aje:Double):string;
var
s_1,s_2:widestring;
s_5:char;
s_4:string;
i:integer;
mm:string;
s_6,s_7:widestring;
begin
s_4:=Format('%10d',[Trunc(aje*100)]);
s_1:='零壹贰叁肆误陆柒捌玖';
s_2:='仟佰拾万仟佰拾元角分';
i:=1;
mm:='';
while i<=10 do
begin
s_5:=s_4[i];
if s_5<>' ' then
begin
s_6:=s_1[ord(s_5)-ORD('0')+1];
s_7:=s_2[i];
if (s_5='0') and (i<>4) and (i<>8) then
s_7:='';
if (copy(s_4,i,2)='00') or ( (s_5='0') and (i in [4,8,10])) then
s_6:='';
mm:=mm+s_6+s_7;
if (s_4[i]='0') and ((s_4[i+1]<>'0') and (i in [4,8])) then
mm:=mm+s_1[1];
end;
inc(i);
end ;
if s_5='0' then mm:=mm+'整';
result:=mm;
end;
function My_StrToRMB(curs :string) :string;
implementationfunction My_StrToRMB(curs: string) :string ;
var
daxie,danwei,minuscurs:string;
i,j,deccount :integer ;
rmb :int64;begin
curs:=trim(curs);
if (curs='-') or (curs='.') or (curs='') then // '.','-',''错
begin
result:='ERROR';
exit;
end;
deccount :=0;
for i:=1 to length(curs) do
begin
if not (curs[i] in ['0'..'9','.','-']) then //'123w2'错
begin
result:='ERROR';
exit;
end;
if (curs[i]='.') and (deccount>0) then //'12313.324.23'错
begin
result:='ERROR';
exit;
end;
if (curs[i]='-') and (i>1) then //'-123-123'错
begin
result:='ERROR';
exit;
end;
if curs[i]='.' then inc(deccount);
end;
rmb:=round(StrToFloat(curs)*100);
minuscurs:=''; //负数标志
if rmb<0 then
begin
minuscurs:='(负数)' ;
rmb:=(-1)*rmb;
end;
if rmb>=1E18 then //超过9千万亿
begin
result:='ERROR';
exit;
end;
curs:='';
i:=0; j:=0 ;
while rmb>0 do
begin
j:= rmb mod 10;
case j of
0 : daxie :='零' ;
1 : daxie :='壹' ;
2 : daxie :='贰' ;
3 : daxie :='叁' ;
4 : daxie :='肆' ;
5 : daxie :='伍' ;
6 : daxie :='陆' ;
7 : daxie :='柒' ;
8 : daxie :='捌' ;
9 : daxie :='玖' ;
end;
case i of
0 : danwei :='分' ;
1 : danwei :='角' ;
2 : danwei :='圆' ;
3 : danwei :='拾' ;
4 : danwei :='佰' ;
5 : danwei :='仟' ;
6 : danwei :='万' ;
7 : danwei :='拾' ;
8 : danwei :='佰' ;
9 : danwei :='仟' ;
10 : danwei :='亿' ;
11 : danwei :='拾' ;
12 : danwei :='佰' ;
13 : danwei :='仟' ;
14 : danwei :='万' ;
15 : danwei :='拾' ;
16 : danwei :='佰' ;
17 : danwei :='仟' ;
end;
rmb:=rmb div 10;
if j<>0 then curs:=daxie+danwei+curs; //该位上不为0
if (j=0) and (not (i in [2,6,10,14])) then //该位为0,是一般位
curs:=daxie+curs;
if (j=0) and (i in [2,6,10,14]) then //该位为0,是敏感位
curs:=danwei+curs;
inc(i);
end;
while pos('零零',curs)>0 do curs:=stringreplace(curs,'零零','零',[]);
curs:=stringreplace(curs,'零圆','圆',[]);
while pos('零万',curs)>0 do curs:=stringreplace(curs,'零万','万',[]); //上万亿后可能两个'零万'
curs:=stringreplace(curs,'零亿','亿',[]);
curs:=stringreplace(curs,'角零','角整',[]);
if copy(curs,length(curs)-3,4)='圆零' then //最后两位是圆零.
curs:=stringreplace(curs,'圆零','圆整',[]); //小数点后
curs:=stringreplace(curs,'亿万','亿',[]);
result:=minuscurs+curs;
end;
Windows, SysUtils, Forms;
const CapsDigi: array[0..9] of string = ('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
CapsUnit: array[0..10] of string = ('分','角','元','拾','佰','仟','万','拾','佰','仟','亿');function CapsMoney(money:string):string;implementationfunction CapsMoney(money:string):string;
var
Temp: string;
s,s1: string;
i: integer;
l: integer;
begin
Temp := '';
s := '';
s1 := '';
try
s := FormatCurr('0.00',StrToCurr(money));
for i:= 1 to Length(s) do
if s[i] <> '.' then
s1 := s1 + s[i];
l:= Length(s1);
for i:= 1 to l do
begin
if (s1[i] = '0') then
begin
if s1[i + 1] = '0' then Temp := Temp;
if ((l - i = 2) or (l - i = 6)) then
Temp := Temp + CapsUnit[l - i];
if ((s1[i + 1] <> '0') and (i<>l)) then
Temp := Temp + CapsDigi[StrToInt(s1[i])];
if i = l then Temp := Temp + '整';
end
else
Temp := Temp + CapsDigi[StrToInt(s1[i])] + CapsUnit[Length(s1) - i];
end;
except
Application.MessageBox('数据转换错误,请重来!','错误',MB_OK + MB_ICONERROR);
end;
Result := Temp;
end;
const cN:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';
cCha:array[0..1, 0..11]of string =
(( '零仟','零佰','零拾','零零零','零零','零亿','零万','零元','亿万','零角','零分','零整'),
( '零','零','零','零','零','亿','万','元','亿','零','整','整'));
var i :Integer;
sNum :WideString;
begin
result := '';
sNum := FormatFloat('0',money*100);
for i := 1 to Length(sNum) do
result := result + cN[ord(sNum[i])-47] + cN[26-Length(sNum)+i];
for i:= 0 to 11 do //去掉多余的零
result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);
end;
Function UPCaseMoney(Value: String): String;
//字符串转换成实数
Function StrToSingle(const Value: String): Currency;
var
St,Data: String;
i: Integer;
begin
Data := Value;
if Pos('.',Data) = 1 then//如果是以.开头
Data := '0' + Data;
if Pos('.',Data) <= 0 then//没有.
Data := Data + '.00';
St := Copy(Data,0,Pos('.',Data) - 1);//截取整数部分
i := StrToInt(St);
Result := i;
St := Copy (Data,Pos('.',Data) + 1,2);//取小数部分
if Length(St) < 2 then//长度不足
St := St + '0';
i := StrToInt(St);
Result := Result + (i/100);
end;
const
Money: Array[0..15] of String = ('零', '壹', '贰', '参', '肆',
'伍', '陆', '柒', '捌', '玖',
'', '拾', '佰', '仟', '万', '亿'
);
ConMoney: Array[0..2] of String = ('元', '角', '分');
var
Str, Str1, St,
IMon, //整数部分
FMon: String; //小数部分
Zero: Boolean; //是否有零
i, kk: Integer;
Function StrToMoney(const Value: String; const Fen: Bool = False): String;
var
j: Integer;
begin
Result := '';
for j := 1 to Length(Value) do
begin
if Value[j] = '0' then
begin
Zero := True;
Continue;
end;
if Zero then
begin
Zero := False;
Result := Result + Money[0];
end;
Result := Result + Money[StrToInt(Value[j])];
if Fen then
Result := Result + ConMoney[j]
else
Result := Result + Money[10 + Length(Value) - j];
end;
end;
begin
Str := Format('%2f', [StrToSingle(Value)]);
Result := '零元整';
if Str = '0.00' then
Exit;
Result := '';
i := Pos('.', Str);
IMon := Copy(Str, 0, i - 1);
FMon := Copy(Str, i + 1, 2);
Zero := False;
for i := 0 to Length(IMon) DIV 9 + 1 do
begin
kk := ABS(Length(IMon) - (Length(IMon) DIV 9) * 9 + 1);
Str1 := Copy(IMon, 0, kk);
IMon := Copy(IMon, kk + 1, Length(IMon) - kk);
if Length(Str1) <= 0 then
Continue;
if Length(Str1) > 4 then
begin
Str := Copy(Str1, 0, Length(Str1) - 4);
Str1 := Copy(Str1, Length(Str1) - 3, 4);
St := StrToMoney(Str);
if St <> '' then
Result := Result + St + Money[14];
end;
Result := Result + StrToMoney(Str1);
if Length(IMon) > 0 then
Result := Result + Money[15];
end;
Result := Result + ConMoney[0];
Zero := False;
//Result := Result + StrToMoney(FMon, True) + '整'; //最后一行改成
St := StrToMoney(FMon, True);
if St <> '' then
if Pos(Money[0], St) <= 0 then
Result := Result + Money[0] + St
else // Result := Result + St;
Result := Result
else
Result := Result + '整'
end;
var SmallMonth,BigMonth:string;
wei1,qianwei1:string[2];
wei,qianwei,dianweizhi,qian:integer;
begin
{------- 修改参数令值更精确 -------}
qianwei:=-2;{小数点后的位置,需要的话也可以改动-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{判断大写位置,可以继续增大到real类型的最大值}
-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;
我也贡献一个。
var
dx,dy,nn,cccc,dd,c,cc,lc:string;
n,iii:integer;
begin
dx:='壹贰叁肆伍陆柒捌玖';
dy:='分角圆拾佰仟万拾佰仟亿拾佰';
nn:=trim(floattostr(strtofloat(minje)*100));
n:=length(nn);
cccc:='整';
for iii:=1 to n do
begin
dd:=copy(dy,iii*2-1,2);
c:=copy(nn,n-iii+1,1);
if c<>'0' then
begin
cc:=copy(dx,(strtoint(c)*2 - 1),2);
cccc:=trim(cc)+trim(dd)+trim(cccc);
end
else
begin
lc:=copy(trim(cccc),1,2);
if ((iii=3) or (iii=7) or (iii=11)) then
begin
cccc:=trim(dd) + trim(cccc);
continue;
end;
if ((lc<>'零') and (LC<>'整') and (LC<>'亿') and (LC<>'万') and (LC<>'圆')) then
cccc:='零'+cccc;
end;
end;
cccc:='合计:'+cccc;
Result:=cccc;end;
//调用:
showmessage(MaxtoMin(trim('100')));
我用完见笑了,我有一点还不知,function My_StrToRMB 后
我试了一下在button1内写my_strtormb(edit1.text),没反应