delphi 类型转换错误 在线等
编码实现将数据库中表的相关信息显示在stringgrid1中,然后在stringgrid1的某列中输入数字(字符串),再添加一个button1和一个edit1,想要实现点...
编码实现将数据库中表的相关信息显示在stringgrid1中,然后在stringgrid1的某列中输入数字(字符串),再添加一个button1 和一个edit1 ,想要实现点击button就能将stringgrid1中指定的列累加,将结果显示edit1中显示计算结果.
button1 clik事件代码如下:
var
s:string;
i:integer;
m:double;
begin
m:=0;
for i:=1 to n do { n是全局变量,在前面已经获得了值,是stringgrid1所要显示的表的行数.}
begin
s:=stringgrid1.cells[3,i];
m:=m+strtofloat(s);
end;
edit1.text:=floattostr(m);
end;
运行是提示:“ '' is not a valid floating point value”
不知道是哪里错了 请高手指教,小弟初学delphi
首先感谢大家的指教,问题解决了,是在转换前剔除空值,看来很多情况下需要的是严谨,不能相当然. 大家的方法一致的,但是我就只有5分,只能有一个人拿分,不管是拿到分的还是没有拿到分的,都希望你们一如既往的帮助我们这些出学者,再次感谢大家,谢谢! 展开
button1 clik事件代码如下:
var
s:string;
i:integer;
m:double;
begin
m:=0;
for i:=1 to n do { n是全局变量,在前面已经获得了值,是stringgrid1所要显示的表的行数.}
begin
s:=stringgrid1.cells[3,i];
m:=m+strtofloat(s);
end;
edit1.text:=floattostr(m);
end;
运行是提示:“ '' is not a valid floating point value”
不知道是哪里错了 请高手指教,小弟初学delphi
首先感谢大家的指教,问题解决了,是在转换前剔除空值,看来很多情况下需要的是严谨,不能相当然. 大家的方法一致的,但是我就只有5分,只能有一个人拿分,不管是拿到分的还是没有拿到分的,都希望你们一如既往的帮助我们这些出学者,再次感谢大家,谢谢! 展开
4个回答
展开全部
//取值前先判断是否空,空不取
var
s:string;
i:integer;
m:double;
begin
m:=0;
for i:=1 to n do { n是全局变量,在前面已经获得了值,是stringgrid1所要显示的表的行数.}
begin
if stringgrid1.cells[3,i]<>'' then
begin
s:=stringgrid1.cells[3,i];
m:=m+strtofloat(s);
end;
end;
edit1.text:=floattostr(m);
end;
var
s:string;
i:integer;
m:double;
begin
m:=0;
for i:=1 to n do { n是全局变量,在前面已经获得了值,是stringgrid1所要显示的表的行数.}
begin
if stringgrid1.cells[3,i]<>'' then
begin
s:=stringgrid1.cells[3,i];
m:=m+strtofloat(s);
end;
end;
edit1.text:=floattostr(m);
end;
展开全部
你都某一个cell里没有值,是空的,所以导致strtofloat(s)这句出错。在strtofloat(s)前先检查s是否是空的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stringgrid1每个cell都加个初始默认值0,就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能cells里面包含不可转换的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询