使用Access数据库,数据类型为单精度,假设数据为2.4,在Delphi的数据库控件比如DBGrid、DBText之类的控件中显示为2.400000049816之类的数字,怎么办?为什么?谢谢~

解决方案 »

  1.   

    改为其他数据类型显示,如:money等
      

  2.   

    办法很多,给你说两个:一是修改数据库中的数据类型,二是将连接DBGrid的数据源例如AdoQuery中的字段显示部分进行格式化
      

  3.   

    这是浮点数显示时的误差.select format(numfield, '0.00') as numfield
    from table1
      

  4.   

    怎么样可以对AdoQuery中的字段显示部分进行格式化??还有我select的是所有字段SELECT *,怎么样格式化??
      

  5.   

    在查询时用Format函数格式化,不过数据量大的话速度会变慢
      

  6.   

    用round函数就行了好像是
    var f:singlef:=2;
    IntData=round(f,2);
      

  7.   

    Access数据库的问题,强行用sql转一下就好了。
      

  8.   

    一般在 table 或 dbgrid 中對應的 field 都有個 formatstr 之類的東西,可設定格式方式!!!
      

  9.   

    在DBTEXT所连接的TABLE 或者QUERY中。将该字段的DISPLAYFORMAT改成#0.00之类的看看。
      

  10.   

    DISPLAYFORMAT字段只有TAggregateField,TDateTimeField,TNumericField,TSQLTimeStampField几个有啊,类似于DBTEXT之类的没有这个属性啊??其实我只是在Access数据库中设置了一个单精度的字段,直接使用DB控件进行显示,如果数据为2.5就直接显示为2.5,如果是2.1的话就会显示为2.0999999之类的。如果每一个都需要用sql进行格式化的话那也太麻烦了吧!