首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

不是一个有效的整型值,该如何解决

2012-12-31 
不是一个有效的整型值程序执行后,如果出现小数点数值就会报错,如‘69.5不是一个有效的整型值’,代码如下,错

不是一个有效的整型值
程序执行后,如果出现小数点数值就会报错,如‘69.5不是一个有效的整型值’,代码如下,错误在哪里


procedure TFm_ZlFp.ToolButton1Click(Sender: TObject);
var
   i,j,sum0 :integer;
begin
  for i:=4 to SGlist.rowcount-1 do
     begin
     Sum0:=0;
     SGlist.cells[3,i]:= '';
     for j:=4 to SGlist.colcount -1 do    //  列
       begin
       if sglist.Cells[j,i]<>'' then
         sum0:=sum0+strtoint(sglist.Cells[j,i]);
       end;
     SGlist.cells[3,i]:= inttostr(sum0);
     if strtoint(SGlist.cells[2,i]) <> sum0 then
        SGlist.cells[0,i]:='*'
       else  SGlist.cells[3,i]:=''; 



  end;


end;
[解决办法]
这个提示很明显了吧...........

strtoint(sglist.Cells[j,i])这个出错,
sum0定义成Double,用StrToFloat吧

[解决办法]
strtoint转不了,还是有 StrToFloat  转吧
[解决办法]
var
  sum0 :Double;

sum0:=sum0+strtofloat(sglist.Cells[j,i]);

[解决办法]
不是一个有效的整型值,该如何解决
strtofloat
[解决办法]


var
  i,j,sum0,k:integer;



if sglist.Cells[j,i]<>'' then
begin
  if trystrtoint(sglist.Cells[j,i],k) then
  begin
    sum0:=sum0+k;
  end
  else
  begin
    Showmessage('第'+inttostr(i)+'行'+inttostr(j)+'列输入错误');
    exit;
  end;
end;
 

[解决办法]
引用:
引用:
var
sum0 :Double;

sum0:=sum0+strtofloat(sglist.Cells[j,i]);


没用


如果出现sglist.Cells[j,i]为空字串,你的函数还是要有问题
可以这样
sum0:=sum0+strtofloatdef(sglist.Cells[j,i], 0);
逻辑问题是没有,但要看实际的数据内容了。

热点排行