我有TDBEdit
与TFloatField
相关联,DisplayFormat = '0.################'
有12.123456789
。
我已将字段值设置为'12,1234567890000005'
,并且我注意到我的编辑控件将其显示为DisplayFormat
。
我对浮点数没有深入的了解,但我知道这是因为浮点数是近似的。
无论如何,我想知道我怎样才能确保额外的小数字永远不会#34;神奇地"在用户键入值后显示?
我想通过删除一个'#'
来缩短uses
DBClient, DB, DBCtrls;
...
var
Dst : TClientDataSet;
Dsc : TDataSource;
Fld : TFloatField;
Edit : TDBEdit;
begin
//components creation
Dst := TClientDataSet.Create(Application);
Dst.FieldDefs.Add('TEST', ftFloat, 0, False);
Dst.CreateDataSet();
Fld := Dst.Fields[0] as TFloatField;
Fld.DisplayFormat := '0.################';
Dsc := TDataSource.Create(Application);
Dsc.DataSet := Dst;
Edit := TDBEdit.Create(Application);
Edit.DataSource := Dsc;
Edit.DataField := Fld.FieldName;
Edit.Align := alTop;
Edit.Parent := Self;
//test
Dst.Open();
Dst.Append();
Fld.AsFloat := 12.123456789;
Dst.Post();
字符串,但我不知道这是否足以在任何情况下避免此问题。
示例:
GDALDataset *dataSet;
GDALAllRegister();
dataSet = (GDALDataset*)GDALOpenEx("ENCFILE.000",GDAL_OF_VECTOR,NULL,NULL,NULL);
if(dataSet == NULL)
{
printf( "Open failed.\n" );
exit( 1 );
}
else
{
printf( "SUCCESS.\n" );
}