警告“invalid floating point operation”出了什么问题了?

Lynn_8 2006-04-15 11:54:51
我在implementation下
定义了
var
source:array[1..365]of integer;
ma:array[1..359]of single;
以下是运行出错的过程:
procedure TForm1.Button2Click(Sender: TObject);
var
j:integer;
ot:array[1..359] of single;
begin
for j:=1 to 359 do
begin
ot[j]:=source[j+3]/ma[j];
end;
edit3.Text:=floattostr(ot[359]);
end;

执行的时候就提示了“invalid floating point operation!”
整型的不能除以浮点型的数据吗?
上午还运行过一回,能出来结果。但后来就不行了。问题在哪???
...全文
22104 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
postren 2006-04-15
  • 打赏
  • 举报
回复
ma中是不是有0出现呢?
Lynn_8 2006-04-15
  • 打赏
  • 举报
回复
刚刚试过了,知道自己犯了个很愚蠢的错误了,因为我算ma和提取source数组的过程都是在按button1之后发生的,然后在按button2,再进行source除以ma的计算,我刚刚没按button1,直接按button2,source和ma都没值,零除以零,所以就出问题了。我现在把算source除以ma的语句放到button1里了,不用按两个按钮了。问题解决了。谢谢!
柯本 2006-04-15
  • 打赏
  • 举报
回复
invalid floating point operation可能的原因是浮点超出范围引起的.检查你的数据和算法
Lynn_8 2006-04-15
  • 打赏
  • 举报
回复
哎呀,我没说清楚,我在button1里算好ma了,那个source数组的值我是从表格里取出来的。这两个数组的值,在button1里都有值的。
天空的云彩 2006-04-15
  • 打赏
  • 举报
回复
ma:array[1..359]of single;只看见了定义,没看见赋值,如果不赋值系统默认都赋值为0,当然报错啊

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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