问题
当执行检查浮点数一致性的操作时,为什么即使浮点数状态完全一样也会检测到不同的结果?
答案
当应用浮点数(REAL或者LREAL)进行计算时,由于浮点数(指数型)的结构和非常高的数值区间经常会出现舍入误差的情况,以至于计算结果很难保证一致性(所有位都相同)。因此在大多数情况下,浮点数“一致性”的检查不会产生请求的结果。
以下程序段代码允许在一个公差窗口内检查浮点数的一致性。如果两次的比较值的差值部分在显示的公差窗口内,那么结果为真。
程序代码:
Result := (ABS(comparative_value_a – comparative_value_b)) <= (ABS(tolerance_window));
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322189.html