通常计算机在处理浮点数时,会产生误差,下面介绍一种方法,可消除部分误差的产生。如:
var
a,b,c:real;
begin
a := 68;
b := 5.6;
c := trunc(a*b*10)/10;
ShowMessage(floatToStr(c));
end;
这个算式的正确结果应该是:380.8,但你试着用计算机执行一下看看结果是什么?奇怪,怎么是380.7呢?呵呵,用下面我教你的方法,计算结果就为380.8了。
var
a,b,c:real;
begin
a := 68;
b := 5.6;
c := trunc(a*b*10+0.00001)/10;
ShowMessage(floatToStr(c));
end;
在算式中加个足够小的小数,理论上不会对你的正确结果造成影响,但它确消除了误差,不信你试试。
计算机处理浮点数时的误差处理技巧
最新推荐文章于 2023-08-24 17:16:54 发布