我用sqlserver7.0+delphi5.0
表中一字段'单价' numeric(19,6) 值为:10.123456 ,但在dbgrid上显示为10.1235,为什么?能显示和数据库一样吗?

解决方案 »

  1.   

    你的Dbgrid中的这一列是不是不够宽?
      

  2.   

    dbgrid的宽度绝对够,因为他的宽度是依后台数据库变化的!
      

  3.   

    dbgrid中的这一列也有一个format设置的.你设一下吧
      

  4.   

    用bde连接的吗?如果是enabled bde要选上
      

  5.   

    我是用ado连接,上面的建议我都试了,不行!
      

  6.   

    numeric的属性在sql server中设置的?
    去看看他的精度
      

  7.   

    哇塞,我找原因找的好辛苦啊,终于找到了,呵呵
    在我们用ADOQUERY或ADOCONNECTION建立连接的时候,有四栏,我们一般在
    第二栏确认连接成功后我们就不管了,我们看点选最后一栏“ALL”,在下面的列表框中找到一项NAME为Auto Translate,我们可以看到它的默认值为True,知道改了吧,(改为False嘛),这是由于DELPHI用ADO去取数据的时候,并不是单纯的将数据显示在我们面前,他会对数据进行一些处理,我们知道不同的库对数据都有一套自己的处理方案,唉,太罗嗦了,不说了
      

  8.   

    sql.add('select formatnumeric(a,2) from dd');
    其中a为字段名
      

  9.   

    记得是formatnumber(a,2),太久没用记不清了,如果不对你找找看吧!
      

  10.   

    Sorry,因为我看到你这个问题的时候,就想到是DELPHI对数据进行了处理,所以先看ADO获取数据的一些属性设置,最后再去改连接属性的,所以,有个我调整过的属性我没当回事,就是ADOQUERY的EnableBCD要为FALSE,然后你重新OPEN看看 :)