资源描述:
《delphi大小写转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、function TffqkForm.SmallTOBig(small:real):string; var SmallMonth,BigMonth:string; wei1,qianwei1:string[2]; qianwei,dianweizhi,qian:integer;begin{------- 修改参数令值更精确 -------}{小数点后的位数,需要的话也可以改动该值}qianwei:=-2;{转换成货币形式,需要的话小数点后加多几个零}Smallmonth:=form
2、atfloat('0.00',small);{---------------------------------}dianweizhi :=pos('.',Smallmonth);{小数点的位置}{循环小写货币的每一位,从小写的右边位置到左边}for qian:=length(Smallmonth) downto 1 dobegin{如果读到的不是小数点就继续} if qian<>dianweizhi thenbegin{位置上的数转换成大写}case strtoint(copy(Smallmont
3、h,qian,1)) of1: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
4、:='元';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;{组合成大写金额}e
5、nd;end; SmallTOBig:=BigMonth; end;Function XiaoxieToDaxie(f : String) : String;var Fs,dx,d2,zs,xs,h,jg:string; i,ws,{l,}w,j,lx:integer;begin f := Trim(f); if copy(f,1,1)='-' then begin Delete(f,1,1);fs:='负';end else fs:=''; dx:='零壹贰叁肆伍陆柒捌玖';
6、d2:='拾佰仟万亿'; i := AnsiPos('.',f); //小数点位置 if i = 0 Then zs := f //整数 else begin zs:=copy(f,1,i - 1); //整数部分 xs:=copy(f,i + 1,200); end; ws:= 0; //l := 0; for i := Length(zs) downto 1 do begin ws := ws + 1; h := ''; w:=strto
7、int(copy(zs, i, 1)); if (w=0) and (i=1) then jg:='零'; If w > 0 Then Case ws of 2..5:h:=copy(d2,(ws-1)*2-1,2); 6..8:begin h:=copy(d2,(ws-5)*2-1,2); If AnsiPos('万',jg)=0 Then h:=h+'万'; end;
8、10..13:h := copy(d2,(ws-9)*2-1, 2); End; jg:=copy(dx,(w+1)*2-1,2) + h + jg; If ws=9 Then jg := copy(jg,1,2) + '亿' + copy(jg,3,200); end; j:=AnsiPos('零零',jg); While j > 0 do begin jg := copy(jg, 1, j - 1)