我写了一个代码,但它产生了错误的结果!
Var
a,d:double;
c:currency;
b:integer;
begin
b:=10;
c:=20.1;
a:=30.1;
d:=0;
d:=a-b-c;
Memo1.Lines.Add('a => '+FloatToStr(a));
Memo1.Lines.Add('b => '+FloatToStr(b));
Memo1.Lines.Add('c => '+FloatToStr(c));
Memo1.Lines.Add('d => '+FloatToStr(d))
end;
Run Code Online (Sandbox Code Playgroud)
结果:
a => 30.1
b => 10
c => 20.1
d => 1.4210854715202E-15
Run Code Online (Sandbox Code Playgroud)
结果应该是零!这个编译器类型转换错误吗?
有没有办法?!!