本人在計算一文本文件數據時時出現一個浮點數計算錯誤
代碼為
procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
S:string;
Ta:Real;
begin
try
AssignFile(F,'1.txt');
Reset(F);
except
Exit;
end;
Ta:=0;
while not Eof(F) do
begin
Readln(F,S);
Ta:=ta+StrToFloat(S);
Memo1.Lines.Add(FloatToStr(Ta))
end;
CloseFile(F);
end;1.txt 中的數據為
88.86
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
3.96
memo1中顯示為
88.86
89.82
90.78
91.74
92.7
93.66
94.62
95.58
96.5399999999999
100.5
我想知道為什麼在計算95.58+0.96後結果為96.5399999999999 我應怎樣修改.
代碼為
procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
S:string;
Ta:Real;
begin
try
AssignFile(F,'1.txt');
Reset(F);
except
Exit;
end;
Ta:=0;
while not Eof(F) do
begin
Readln(F,S);
Ta:=ta+StrToFloat(S);
Memo1.Lines.Add(FloatToStr(Ta))
end;
CloseFile(F);
end;1.txt 中的數據為
88.86
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
3.96
memo1中顯示為
88.86
89.82
90.78
91.74
92.7
93.66
94.62
95.58
96.5399999999999
100.5
我想知道為什麼在計算95.58+0.96後結果為96.5399999999999 我應怎樣修改.
解决方案 »
- 怎样让程序在编译的时候最小版本号自动加1
- 请教一下获取网络数据的问题
- 怎样知道当前用户是否登录域?
- Couldn't perform the edit because another user changed the record"
- delphi7中的报表控件在那里
- 对tchartseries控件的datasource的赋值的问题,help用的是ttable,但我实际只能用tdatasource,为何?
- 我的数据库表中的字段不接受小数,请帮帮忙。
- 请问Delphi的换行怎么输出
- 如何实现DBNavigator里的存储功能???
- 想问一个数据记录的问题,看帖子
- 程序员健康状况调查,你是否满意现在的健康状况? 进者有分
- 各位,给小弟点意见
Memo1.Lines.Add(FloatToStr());
该为:
Ta:=ta+StrToFloat(S);
Memo1.Lines.Add(FORMAT('%0.2f',[Ta]);
Memo1.Lines.Add(FORMAT('%0.2f',[Ta]));