在Pascal运行程序的时候,有时候对一个实数取整的时候出现下面的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 08:52:42
执行一句对实数取整的语句,原来是9.0取整应该是9,但是由于误差,9变成了8.9999999结果取整变成8了,因此造成程序运行出错,怎么办?

一般来说进行实数运算都要注意精度问题.
如果是使用trunc函数
我一般都会把 trunc(a)
改成 trunc(a+ZERO)
而 ZERO是自己定义的一个很小的实数 一般可以 Const ZERO=1E-7;

a:=9;
a:=round(a);
就行了

的确四舍五入就可以用函数round pascal的精度问题你需要了解一下

使用四舍五入函数round