delphi大小写转换.doc
文本预览下载声明
function ? TffqkForm.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; {判断大写位置,可以继续增大到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;
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:= 零壹贰叁肆伍陆柒捌玖 ; ? ? 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:=strtoint(copy(zs, ? i, ? 1)); ? ? ? ? if ? (w=0) ? and ? (i=1) ? then ? jg:= 零 ; ? ? ? ? If ?
显示全部