2010-09-15 106 views
1

我有一個連接到ClientDataSet的DBGrid,它有一個字段UnitCost。我想要做的是將每個將分配給該字段的值限制在小數點後兩位。除了驗證每個輸入值之外,還有更簡單的方法嗎?限制DBGrid中的小數位數

回答

4

你可以嘗試設置ClientDataset.FieldByName('UnitCost').EditMask := '#.00';

+0

+1的EditMask中的工作爲OP似乎有意限制輸入值(而不僅僅是格式化顯示值)。 – 2010-09-15 11:52:32

+0

我該如何去掉下劃線和'。'在網格中,因爲默認網格的值爲__._? – rajeemcariazo 2010-09-16 06:39:53

3

我通常使用:

TFloatField(Myds.FieldByName('MyField')).DisplayFormat := '#.##'; 

這應該與所有類型的數據集組件

1
procedure TFMasterReport.DBDetail**DrawColumnCell**(Sender: TObject; 
    const Rect: TRect; DataCol: Integer; Column: TColumn; 
    State: TGridDrawState); 
begin 
    TFloatField(Tempdtl.FieldByName('TS_Rate')).DisplayFormat := '0.000'; 
    TFloatField(Tempdtl.FieldByName('TS_Tvol')).DisplayFormat := '0.00'; 
    TFloatField(Tempdtl.FieldByName('TS_permit')).DisplayFormat := '0.00'; 
    TFloatField(Tempdtl.FieldByName('TS_tax')).DisplayFormat := '0.00'; 
    TFloatField(Tempdtl.FieldByName('TS_nettval')).DisplayFormat := '0.00'; 
end;