请问,我在修改一个用delphi5开发的程序时候,用Ttable控件做数据插入的时候出现了精度问题。
用如下方法操作:
table1.fieldbyname('aa').value:=strToFloat(edt1.text);
我在edt1.text输入123.12结果在数据库中保存的是123.11 如果输入的是123.16保存的是123.15
请问是什么问题?
用如下方法操作:
table1.fieldbyname('aa').value:=strToFloat(edt1.text);
我在edt1.text输入123.12结果在数据库中保存的是123.11 如果输入的是123.16保存的是123.15
请问是什么问题?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['0'..'9',#13,#8,'.']) then
Key:=#0;
end;
table1.fieldbyname('aa').AsCurrency:=StrToFloat(edit1.text);也不行
用formatfloat(‘###0.00’,edit1.text)也用过了
开始我以为是没升级delphi 后来升级后也是不行。请大家想想是不是其他的
table1.fieldbyname('aa').AsCurrency:=StrToCurr(edit1.text);
这样是没错的.
你用什么数据库的,如果还不行的话可能是其它的问题,语句本身并没有错.
一般数值型字段设置为numeric比较好一些!
比如 0.11 转换成float的时候可能会变成 0.109999999999999999999999
但是你的数据库只允许两位小数,于是就截断了,只剩下 0.10了所以才会产生这个结果