delphi下将中文数字转换为阿拉伯数字

因为项目中要用到中文转阿拉伯数字,网上找不到别人的,于是自己写了一个。


type
  TChnnum=record
    rate:integer;
    str:string;
  end;
  const chndigit:array[0..9]of Char=('零','一','二','三','四','五','六','七','八','九');

function ChnToNum (s:string):Integer;
var chnnums:array[0..3] of TChnnum ;
i,j:integer;
a,b,x:integer;
str:string ;
begin
 chnnums[0].rate:=10;chnnums[0].str:='十';
 chnnums[1].rate:=100;chnnums[1].str:='百';
 chnnums[2].rate:=1000;chnnums[2].str:='千';
 chnnums[3].rate:=10000;chnnums[3].str:='万';
//从左开始对字
str:=s;
x:=0;
i:=0;
if str[1] ='十' then begin
x:=10;
inc(i);
end;

while i<s.Length do
begin
a:=0;b:=1;
inc(i);
  for j:=Low(chndigit) to High(chndigit) do
  if str[i] =chndigit[j] then begin
     if j=0 then inc(i)
     else begin
      a:=j;
      break;
     end;
  end  ;
  if (a=0 ) and (i=1) then a:=1;
  if i< s.Length then begin
  inc(i);
    for j:= Low(chnnums) to High(chnnums) do
      if str[i]= chnnums[j].str  then begin
       b:= chnnums[j].rate;
       break;
      end;
   end;
  x:=x+a*b;
end;
  Result:=x;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csaaa2005

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值