我将一个数字列表(如Double)存储在一个文本文件中,然后再将它们读出来。
当我从文本文件中读出它们时,数字会被放置在文本框中,例如1.59993499,而不是1.6。
AssignFile(Pipe, 'EconomicData.data');
Reset(Pipe);
For i := 1 to 15
Do ReadLn(Pipe, SavedValue[i]);
CloseFile(Pipe);
Edit1.Text := FloatToStr(SavedValue[1]);
上面代码中Edit1.text中的文本将是1.59999 ...而不是文本文件中的1.6。我怎样才能使文本框显示原始值(1.6)?
答案 0 :(得分:4)
您可以使用FormatFloat功能
var
d: double;
begin
d:=1.59993499 ;
Edit1.Text:=FormatFloat('0.0',d); //show 1.6
end;
答案 1 :(得分:2)
抱歉,我不确定它是否符合您的要求,但我原来的答案是使用:
Format('%n', [SavedValue[1]]);
答案 2 :(得分:1)
使用浮点时要小心。如果您要使用这些值执行计算,那么最好使用货币类型或整数,并在保存之前隐含小数点。正如您所注意到的,浮点值是近似值,并且最终会发生舍入误差。
例如,假设您想在程序中存储十分之一(1.6),只需创建一个整数变量,并且为了所有密集目的,将其视为十分之一。当您显示该值时,请使用以下内容:
Format('%n',[SavedValue[1]/10]);
Currency是一个整数类型,隐含的十进制小数。