我的数据库sql server2000中的表table1中字段:‘工业总产值’:real类型,长度4
,可为空。
前台为dephi6,我用的是dbedit控件+DBGrid(绑定的是‘工业总产值’),当我往里面输入3747.8后,在用dbgrid的箭头浏览时,变成了3747.80004882813。这是不是dephi的bug?我在数据库的table1直接输入3747.8,却没有变成3747.80004882813,
请问我如何才能保持就是3747.8????

解决方案 »

  1.   

    1)你的记录长度有问题,长度应该多一些,大于最大的数值,留出余地。2)你在DBGRID里输入的话,DBGRID会给你保存到数据库里。
    因为一移动记录,就POST了。3)你试试把‘工业总产值’设成字符型,一般我都设成string型,因为转换很方便。
      

  2.   

    可是我的小项目是一个报表:大概有88个需要填写的项目,我都用了dbedit+DBGRID+DbNavigator,我再把类似“工业总产值”那么多的字段类型由real改为string,那么怎么控制人在输入时只能输入数字阿????
      

  3.   

    你的DBEDIT出去的时候,将该数据FORMAT一下
      

  4.   

    to:Manwill71,你的话是什么意思,小弟不太董,不吝赐教!
      

  5.   

    如果你用普通的Edit控件,可以在该控件的OnKeyDown事件中
    写一个判断语句,限制用户按下的键只能是数字键就可以了呀
      

  6.   

    procedure TForm1.DBEdit1Exit(Sender: TObject);
    begin
      if Trim(TDbEdit(Sender).Text)<> '' then
      begin
       try
         TDbEdit(Sender).Text :=
           Format('%12.4f', [StrToFloat(TDbEdit(Sender).Text)])
    //尾数保留四位小数
       except   end ;
      end;
    end;
    记得给分哦
      

  7.   

    to:Manwill71,谢谢,我还没有试,放心,你的分数,我绝对不会少的,!!!!
      

  8.   

    to:Manwill71,你的方法还是不行,因为我的字段类型为real型,
    尽管但是输入的时候是显示小数点后面4位,但是待下一次启动,
    它还是3747.80004882813
      

  9.   

    将联接table1数据控件中‘工业总产值’字段的DisplayFormat属性设为:
    DisplayFormat:='#,##0.00' 如果保留两位小数时。
      

  10.   

    to :小思,哪里有什么displayformat属性阿,我是dbedit+DBGRID+DbNavigator,没有写代码的,不过我现在把real改为float可以了