请问:下面程序中的变量qianwei是如何起判断作用的?依我的水平我始终没看明白,不好意思,请教各位了!谢谢!function   Tform1.SmallTOBig(small:real):string;   
  var   SmallMonth,BigMonth:string;   
  wei1,qianwei1:string[2];   
  wei,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;   

解决方案 »

  1.   

    qianwei:=-2;   
    Smallmonth:=formatfloat('0.00',small);
    这两个是初始化,inc(qianwei)就是变化。
    qianwei的取值范围就是[-2..11].
      

  2.   

    我是问它(qianwei)是怎么样跟输入的小写变量(small)的位置联系在一起的,就是说是如何得出small这个数值的位置的?从头到尾我都没看出来qianwei跟small有联系的语句。请教了,谢谢!
      

  3.   

    strtoint(copy(Smallmonth,qian,1))这里应该写错了strtoint(copy(Smallmonth,qianwei,1))
      

  4.   

    是我没仔细看,确实没有错,qian是在循环里的,我刚开始没看到。qianwei是跟着qian变化的,而qian就是具体数字的位置