BCD 已经设置成了 false了。
数据库中 字段为 numeric 设置 位数是8在数据库中写入 0.12321312341 但是在 dbgrideh中显示 始终是4位 0.1232输入的时候 也会自动 转换成4位的。

解决方案 »

  1.   

    http://bbs.csdn.net/topics/350153128
      

  2.   

    碰到过类似问题,要自己修改DBGridEh源码
      

  3.   


    试一下DEV CXGIRD控件!
      

  4.   

    重点还是测试数据控件是否有8位小数DataSet.FieldByName('字段名').AsString 显示一下看看.我测试将ADODataSet1.EnableBcd 设置成了 false,不管用什么控件,都是可以正常显示8位小数的!
      

  5.   

    重写field的OnGetText
      

  6.   

    dbgrid吗?
    DisPlayFormat = 0.00000000
      

  7.   

    如果还是不行,你看看你用数据库软件select 出来的是几位?
    如果也是4位,那你肯定要改数据类型了。
    改成dec类型的
      

  8.   

    赞同,我在Delphi 7 + MS SQL 2000,不管是 Numeric(18,8)还是Decimal(18,8)都可在ADODataSet1.EnableBCD为False时,DBGrid,DBEdit,DBGridEh都能正确显示出8位小数。
      

  9.   

    我的是
    displayformat=‘0.0000########’;
    但是该对应列仍然在倒数第二位四舍五入,
      

  10.   

    最实用的方法是在Field.OnGetText事件中进行处理里面的TEXT返回给控件就可以了但要注意,如果处理了,有可能看到的和实际数值有偏差access数据库不能建DECIMAL字段,只有FLOAT字段,所以,ACCESS数据库要在OnSetText把精准的数据写进数据库才可以
    SQL SERVER就不存在这个问题
      

  11.   

    DisPlayFormat = 0.00000000