begin adoquery1.first; while counter<=adoquery1.RecordCount do begin x_a:=adoquery1.fieldbyname('x').asfloat; y_a:=adoquery1.fieldbyname('y').AsFloat; adoquery1.next; x_b:=adoquery1.fieldbyname('x').AsFloat; y_b:=adoquery1.fieldbyname('y').AsFloat; xx:=(l-y_a)*(x_b-x_a)/(y_b-y_a)+x_a; adoquery2.append; adoquery2.FieldByName('x').AsFloat:=xx; adoquery2.FieldByName('l').AsFloat:=adoquery1.fieldbyname('l').AsFloat; adoquery2.Post; counter:=counter+1; end; end;
错误提示: invalid floating point operation (无效的浮点操作)!
取了while 循环后就正常了,是为什么啊?
----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String; begin if Boy.钱 < 10W then Girl.Say(''滚!'') else begin if Girl.Anser = ''我愿意'' then Result := ''结婚'' else Result := IntToStr(88); end; 风过不折→百炼成尧 QQ: 7315910
我的目的就是要在每一次循环时取第一行的x,y和下一行的x,y啊,当然要先在next后取值啊。 能不能说得明白一点啊?
----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String; begin if Boy.钱 < 10W then Girl.Say(''滚!'') else begin if Girl.Anser = ''我愿意'' then Result := ''结婚'' else Result := IntToStr(88); end; 风过不折→百炼成尧 QQ: 7315910
也就是我把 while counter<=adoquery1.RecordCount do 中的 <= 改为< 就可以了吗?
----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String; begin if Boy.钱 < 10W then Girl.Say(''滚!'') else begin if Girl.Anser = ''我愿意'' then Result := ''结婚'' else Result := IntToStr(88); end; 风过不折→百炼成尧 QQ: 7315910
好的,谢谢你了哈,我也下班了,明天再试啊。
----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String; begin if Boy.钱 < 10W then Girl.Say(''滚!'') else begin if Girl.Anser = ''我愿意'' then Result := ''结婚'' else Result := IntToStr(88); end; 风过不折→百炼成尧 QQ: 7315910