上边说了
format
还有就是;
KeyPress
if ( Length(FieldByName('FieldName').AsStrnig) - Pos('.',FidldByName('FieldByName').AsString)) > I then
Key := #0;
//这种方法可以用于一切有输入焦点的控件
Edit/DBEdit/StringGrid/DBGrid/.....

解决方案 »

  1.   

    在哪儿设计啊?Delphi中?
    Access中?
      

  2.   

    Access里边肯定要设置了!
    delphi里肯定要控制了:)
      

  3.   

    我在Access中设置了字段属性为“单精度型”,小数点后位数为3。但在Delphi的DBEdit中显示的数据特别长,如我在DBEdit中输入0.230显示却为0.230000004172325
      

  4.   

    procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if key=#13 then
      begin
        if  pos('.', dbedit1.text) =0 then
          showmessage('0')
        else
          showmessage(inttostr(length(dbedit1.text)-pos('.', dbedit1.text)));
      end;
      

  5.   

    所以说嘛,要在delphi里控制的;
    嘻嘻
    Edit1.Text := Format('%0.2f',[0.222]);
      

  6.   

    所以说嘛,要在delphi里控制的;
    嘻嘻
    Edit1.Text := Format('%0.2f',[0.222]);
      

  7.   

    procedure TForm1.wwDBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        if  pos('.', wwdbedit1.text) =0 then
          showmessage('0')
        else
          showmessage(inttostr(length(wwdbedit1.text)-pos('.', wwdbedit1.text)));
      end;
    end;
      

  8.   

    浮点数不要用单精度,用货币类型,他是bcd,精度可以保证
      

  9.   

    谢谢楼上的兄弟!如果不是用Access,而是用Oracle或SqlServer,没有货币型,又如何呢?