问题
I have a DBGrid which is connected to a ClientDataSet and it has a field UnitCost. What I want to do is to limit to 2 decimal places every value that will be assigned to that field. Is there an easier way to do this other than validating every input value?
回答1:
You can try to set ClientDataset.FieldByName('UnitCost').EditMask := '#.00';
回答2:
I usually use:
TFloatField(Myds.FieldByName('MyField')).DisplayFormat := '#.##';
This should work with every type of TDataset
回答3:
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;
来源:https://stackoverflow.com/questions/3715653/limit-decimal-places-in-dbgrid