Qry_in_storage_detail.FieldByName('sum_weight').AsFloat:= Qry_in_storage_detail.FieldByName('goods_weight').AsFloat*Qry_in_storage_detail.FieldByName('goods_quantity').AsInteger;在数据库中定义了sum_weight,goods_weight为数值型保留八位小数,然而在DBGRID中goods_weight显示没有问题,但是sum_weight计算出来保留八位小数就出问题,比如goods_weight=0.21 goods_quantty=120,计算出来的结果是:25.19999999 而不是25.20000000,请各位大师指点一下,谢谢
你要用FormatFloat函数来格式化后显示。
改为双精度,或是小数都可以解决这个问题.
查询如下,运算 0.21*120=25.2 :
select * ,goods_weight*goods_quantity from table_b