恭喜,你发布的帖子
发布于 2024-01-05 10:31:36
33楼
我再试试说两个因素带来的误差导致不能用等于比较。
一。
现实中的实数是连续的,计算出来任何值都可以精密表达。而用二进制表达的浮点数。是不连续的。有大量的数值不能用二进制表达。例如(只能意会):10.1这个数可以精密表示,10.13也可以精密表示。但是10.11这个数不能精密表示。10.1到10.13之间的所有值都只能用这两个数其一去代替期望值。谁比较接近期望值或者谁比期望值大就把这个值代替期望值。
当我们需要二进制表达10.11这个数的时候,就只能显示10.1。
这里有一种误差发生了。
二。
脉冲数不可能发半个。你要发10.1个脉冲就比较尴尬了。最后一个脉冲不发,又没到位。发了嘛,仍然未到位。选择最接近的10吧,没理由选择11个脉冲吧?结果当然是不等于啦。这明显没有到达期望位置吧。期望值10.11跟脉冲数10怎么比较?
所以上述两种层次带来的误差,基本你别想用等于去实现了。
这是我这个门外汉对这个误差的理解。用词不专业,莫笑出来。
请填写推广理由:
分享
只看
楼主