你把Enable BCD设为True试试看...(BDE)
如果用ADO的话,在控件中直接设置即可~~

解决方案 »

  1.   

    我也遇到过这个现象,我不是在DBGrid中输入,我是用edit输入,当将它用
    table.fieldbyName('AA').asfloat:=strtoFloat(edit1.text)时就会出现你所说的,输入20.2就会变成20.199
    当我用
    table.fieldbyName('AA').asstring:=edit1.text就不会出错,输入20.2就会是20.2
      

  2.   

    输入20.2  却变成了20.199输入20.2001  变成了20.2输入40.2  变成了40.2
    (数据库为sql2000,数据类型为numeric(10,3)
      

  3.   

    关注,我也同样碰到这个情况
    好像是SQL2000中得数据类型得问题
      

  4.   

    如果为NUMEERIC(10.2)则20.2变为20.19
      

  5.   

    只要设置:
        FindField('AA').EditMask := '0.###';
    就行了。
      

  6.   

    CoolSlob() 的回答应该是对的,
      

  7.   

    是delphi引用函数的问题
    不关sql2000的事
      

  8.   

    把Enable BCD改为True就会出错啊