1、做的一个求和统计,想把结果显示在Edit里,但是结果不对啊~
例如应该是1980的就显示2000了,是因为类型转化以后丢失精度了吗?
求高人指点~ 谢谢!原来的代码如下:procedure TForm3.BitBtn8Click(Sender: TObject);
var
sumy:currency;
i:integer;begin
sumy:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from purchase where matnum='''+DBedit6.Text+'''');
ADOQuery1.open;
for i:=0 to (adoquery1.RecordCount-1) do
begin
sumy:=sumy+ADOQuery1.fieldbyname('MatPrice').AsCurrency *ADOQuery1.fieldbyname('purqua').Asfloat;
ADOQuery1.DataSource.DataSet.Next;
end;
edit4.Text:=floattostr(sumy);end;2、currency和float相乘得到的是什么类型的数字啊?
例如应该是1980的就显示2000了,是因为类型转化以后丢失精度了吗?
求高人指点~ 谢谢!原来的代码如下:procedure TForm3.BitBtn8Click(Sender: TObject);
var
sumy:currency;
i:integer;begin
sumy:=0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from purchase where matnum='''+DBedit6.Text+'''');
ADOQuery1.open;
for i:=0 to (adoquery1.RecordCount-1) do
begin
sumy:=sumy+ADOQuery1.fieldbyname('MatPrice').AsCurrency *ADOQuery1.fieldbyname('purqua').Asfloat;
ADOQuery1.DataSource.DataSet.Next;
end;
edit4.Text:=floattostr(sumy);end;2、currency和float相乘得到的是什么类型的数字啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货