在ACCESS数据库里面显示的也是两位,怎么会出现这种情况呢?怎么处理把小数位处理为两位呢,

解决方案 »

  1.   

    设置字段的displayFormat属性####.##
      

  2.   

    双击ado组件,添加静态字段,然后设置字段的displayFormat
      

  3.   

    (ADOQuery1.fieldbyname('系数') as Tfloatfield).DisplayFormat:='###,###,##0.##0';
      

  4.   

    我也来晚了。不过不会,呵,学知识了,MARK下
      

  5.   

    以上的方法是治标的,应该这么干1、把数据类型修改为双精度型
    2、设置小数位数
    3、取消默认值这样才能保存真实的录入数据剩下的采用DisplayFormat:='0.00'的方式,这样只是规范显示,用0补齐显示
      

  6.   

    procedure TForm.DBGridDrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    var
      temp:string;
    begin
      with DBGrid.Canvas do
      begin
         FillRect(Rect);
         if (Field.DataType = ftFloat) then
         begin
           if not (Field.IsNull) then temp:= format('%8.1f',[strtofloat(field.asstring)]);
           TextOut(Rect.Right-TextWidth(temp)-3,Rect.Top+3, temp);
         end
         else TextOut(Rect.Left+2,Rect.Top+3,Field.AsString);
      end;
    end;
      

  7.   

    耶,很同意上面各位的观点SmallMaker(小人物) Hank(星星农场) ( ) darkliu(钢铁工人甲) wudi_1982(︻┳═一酒可千日不饮,但不可一饮不醉)( ) 
      

  8.   

    ado技术float传输是这样的,有个精度误差,比如:你实际上是0.3,保存的可能是0.2999999999,也可能是0.3000000000001,就这样。这就是浮点数的不方便,进行大额计算的时候,误差就会被放大,不过,这个要看你的项目是否能容忍这个误差。
    比较好的办法就是用定点数格式的小数,这样没有误差,速度也非常快。