浮点数加减法结果有问题
var
a,b,c,d:double;
begin
a :=53;
b:=98.1;
c:=45.1;
d := a-b+c;
showmessage(floattostr(d));
end;
结果显示:7.105427357601E-15,这是什么原因造成的呢?
[解决办法]
结果没错!是你没自己精确度没设
[解决办法]
浮点数运算本就有误差,7.105427357601E-15的误差已经是很小的了,如果改为Single,误差会更大,showmessage(FormatFloat( '0.0000 ', d));就看不出来误差了,结果为0.0000
[解决办法]
同上,用formatfloat()把结果格式化.