在labview中0.42-0.5+0.08=0结果如何?0.42+0.08-0.5=0结果如何?0.43-0.5+0.07=0结果如何?
从数学的角度看,0.43-0.5+0.07=0和0.43+0.07-0.5=0应该满足交换率,运算结果完全相同,但是在labview中,二者的计算结果却完全不相同。
结果不稳定,这是因为同其他编程语言一样,labview中的浮点数也存在精度损失的问题,只有2的N次方的浮点数可以精确表示,比如0.5,0.25,0.125。其他的数都是根据精度去一个临近的尽可能精确的2的N次幂来表示的。这样,浮点数的计算误差不可避免。
因此,我们可以使用最小浮点数表示法来比较,也可以通过放大法乘以100去比较。