不是一个有效的整型值

xjh1984 2012-06-14 10:53:32
程序执行后,如果出现小数点数值就会报错,如‘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;
...全文
425 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaikai_kk 2012-06-14
  • 打赏
  • 举报
回复
var
sum0 :Double;

sum0:=sum0+strtofloat(sglist.Cells[j,i]);
bdmh 2012-06-14
  • 打赏
  • 举报
回复
strtoint转不了,还是有 StrToFloat 转吧
xjh1984 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这个提示很明显了吧...........

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

直接用StrToFloat也不行啊,sum0不用重新定义么?新人,还希望说的详细点
看那山瞧那水 2012-06-14
  • 打赏
  • 举报
回复
这个提示很明显了吧...........

strtoint(sglist.Cells[j,i])这个出错,
sum0定义成Double,用StrToFloat吧
火龙岛主 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:
var
sum0 :Double;

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


没用
[/Quote]

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

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;

xjh1984 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
var
sum0 :Double;

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

没用
7年 2012-06-14
  • 打赏
  • 举报
回复

strtofloat

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧