我的access数据表float字段中数据只有很小的小数位数,比如2.33,但在dbgrid中显示出来的却是2.334998982等什么的数字,请问怎样限制其小数位,小弟是新手,请高手们指点一二!

解决方案 »

  1.   

    Format('x=%d', [12]); //'x=12' //最普通Format('x=%3d', [12]); //'x= 12' //指定宽度Format('x=%f', [12.0]); //'x=12.00' //浮点数Format('x=%.3f', [12.0]); //'x=12.000' //指定小数Format('x=%.*f', [5, 12.0]); //'x=12.00000' //动态配置Format('x=%.5d', [12]); //'x=00012' //前面补充0Format('x=%.5x', [12]); //'x=0000C' //十六进制Format('x=%1:d%0:d', [12, 13]); //'x=1312' //使用索引Format('x=%p', [nil]); //'x=00000000' //指针Format('x=%1.1e', [12.0]); //'x=1.2E+001' //科学记数法Format('x=%%', []); //'x=%' //得到"%"S := Format('%s%d', [S, I]); //S := S + StrToInt(I); //连接字符串
    抄的!    
      
      

  2.   

    有没详细一点的呀,我是要在adodataset中设置吗?
      

  3.   

    有没详细一点的呀,我是要在adodataset中设置吗?
    ------>
    在adodataset 裡相應的字段的displayformat 裡設置
    比如設成:#0.00
    就只有兩位小數,
    設置為#0.##
    這樣設的話,小數位最多為2位
      

  4.   

    楼上的方法同意,当然也可以代码来实现
    procedure Tform1.ADOQuery1AfterOpen(DataSet: TDataSet);
    var
      I: Integer;
    begin
      for I := 0 to DataSet.Fields.Count - 1 do
        case DataSet.Fields[I].DataType of
          ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftBCD:
            TNumericField(DataSet.Fields[I]).DisplayFormat := '#,##0.00';
        end;
    end;
      

  5.   

    edit3.text:=trim(formatfloat('0.000',strtofloat(edit1.text)/strtofloat(edit2.text)));不知道是不是你想要的?
      

  6.   

    这个是Access的问题,你在Access里所见到显示的是被格式化后的,所以你只能看到2位小数,用ADO连接时就会出现Access存储的原始情况,你可以设置dbgrid列的显示方式来实现你的要求!
      

  7.   

    哦,应该是设置ADOTable的字段属性就可以了!
    双击ADOTable控件,add字段后修改!