用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Delphi

小写金额转换

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:06:00
如下为一个简单的小写金额转换为大写的函数,其思路简单(可以说烂吧,居然利用了位置来转换),但是它几乎可以无限制的转换,只要你能读得出来和写得进去:

function Tform1.SmallTOBig(small:real):string;
var SmallMonth,BigMonth:string;
    wei1,qianwei1:string[2];
    qianwei,dianweizhi,qian:integer;
begin
   {------- 修改参数令值更精确 -------}
   {小数点后的位置,需要的话也可以改动-2值}
   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;

调用如下“edit1.text:=SmallTOBig(1234567890.1234);”他自动默认小数点后两位

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:18,734.38000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号