请问Pascal里面为什么比较两个实数的大小不是直接使用等于号,而是两个数相减绝对值小于0.00001

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:58:06
请问Pascal里面为什么比较两个实数的大小不是直接使用等于号,而是两个数相减绝对值小于0.00001

是的,浮点数需要考虑误差,一般都需要设置精度,我通常用10^(-8),这样应该够了,判断语句就这么写:abs(a-b)<1e-8

浮点数比较的话,计算机存储会有误差,所以不会绝对相等,比如赋值的
153.9输出就会是
153.89994

所以用两个数相减的差很小来代表它们相等。

不光是pascal,在C和别的语言中也是这样。

在fortran的g95编译器中这个精度问题好一点。

因为浮点数在运行过程中会产生在十的负十几次方左右的误差
导致直接比较大多数情况是错误判断

=shi是等于。
而:= 是赋值