我在sql server 2000后台数据库中将‘价格’字段设为decimal类型,小数点位数为6,
前台程序使用ado数据集控件,发现dbgrid中输入价格时,保存的并不是6位小数,如输入
1.2345678,则显示为1.2346,为什么会如此呢?如何才能保存6位小数呢?

解决方案 »

  1.   

    应该把他做成字符类型..我用的是access就是该的字符类型
      

  2.   

    试试这样:
    在DBGrid的DrawDataCell事件中
    if field.FieldName <>'CustName' then//除了‘CustName’以外都是浮点型的数据
    begin
    DBGrid1.Canvas.FillRect(Rect);//很重要哦!不然显示的内容乱七八糟;
    DBGrid1.Canvas.textout(
      rect.left,rect.top,formatfloat('0.000000',field.asfloat));//主要部分
    end;
    另外在ADOQuery(数据源)的更改中加一句:DBGrid1.Invalidate ;//迫使数据改变后DBGrid
    重绘;
      

  3.   

    或TNumericField(Query1.FieldByName('字段名')).displayformat:='0.000000';
      

  4.   

    如果不行,就换控件:DBGRIDEH/DXDBGRID
      

  5.   

    to
      cg1120(代码最优化-§雪是冷的,人是暖的§):
      按照你的设置后显示为:1.234600,还是进行四舍五入了,不知道各位的是否
    也出现同样的问题呢?
      

  6.   

    当然了...formatfloat 自动有..四舍五入.....让你改了字段属性为字符就好了
      

  7.   

    设置displayformat
    好像enablebcd为False
      

  8.   

    哪里的enablebcd属性?是sql explore里面的码?我也修改过,使用ado好像跟
    它是不是没有关系呢?
      

  9.   

    将你的数据类型改为FLOAT就可以显示六位。