procedure Tacc.Button1Click(Sender: TObject);
var
k: double;
nn: integer;
i: integer;
m: double;
ss: integer;
begin
ADOTable5.First;
for i:=1 to ADOTable5.RecordCount
do begin
//k:=strTofloat(ADOTable5.FieldByname('l_price').asstring);
//m:=m+k;
begin
nn:=strToint(ADOTable5.FieldByname('sale').asstring);
ss:=ss+nn;
end; ADOTable5.Next;
end;
edit1.text:=floatTostr(ss);
//edit2.text:=floatTostr(m);
ADOTable5.First;
end;end.
为什么上面的代码将k、m定义的double改为integer可以正常计算,换为double,mm的计算结果就是另一个值?
同样将以上代码的注释部分去掉注释计算结果也是另一个值,加上注释后,ss的计算结果正常,这是咋怎么回事啊???
var
k: double;
nn: integer;
i: integer;
m: double;
ss: integer;
begin
ADOTable5.First;
for i:=1 to ADOTable5.RecordCount
do begin
//k:=strTofloat(ADOTable5.FieldByname('l_price').asstring);
//m:=m+k;
begin
nn:=strToint(ADOTable5.FieldByname('sale').asstring);
ss:=ss+nn;
end; ADOTable5.Next;
end;
edit1.text:=floatTostr(ss);
//edit2.text:=floatTostr(m);
ADOTable5.First;
end;end.
为什么上面的代码将k、m定义的double改为integer可以正常计算,换为double,mm的计算结果就是另一个值?
同样将以上代码的注释部分去掉注释计算结果也是另一个值,加上注释后,ss的计算结果正常,这是咋怎么回事啊???
nn=5、3时,ss的结果是1.4729840438428E269
2. nn:=strToint(ADOTable5.FieldByname('sale').asstring); 可改成 nn:=ADOTable5.FieldByname('sale').AsInteger;k:=strTofloat(ADOTable5.FieldByname('l_price').asstring 可改成 k:=ADOTable5.FieldByname('l_price').AsFloat;