Просмотр полной версии : Сравнение REAL (или LONGREAL)
ВладОвен
13.11.2024, 11:08
Привет.
Подскажите, как будут сравниваться переменные типа REAL (или LONGREAL)?
Сравнение происходит до какого-то знака?
Там ведь "шумы в хвосте"! Получается, что такое сравнение почти всегда будет FALSE?
IF rN = rM THEN
;
ENDIF
проверяйте на больше/меньше сравнивать на равенство real это утопия.
Сергей0308
13.11.2024, 12:16
У меня проблем не возникает:
80018
Надо смотреть на абсолютное значение разницы между переменными.
Сергей0308 а вы не ручками, а добавьте сюда преобразование от датчика какого-нибудь...
ВладОвен
13.11.2024, 13:13
Использовал функцию OSCAT_BASIC.DIFFER, а максимальное отличие вычисляю в процентах.
80019
Использовал функцию OSCAT_BASIC.DIFFER, а максимальное отличие вычисляю в процентах.
можете написать и свою функцию, она умещается в одну строчку abs(a-b) <= max( rel_tol * max(abs(a), abs(b)), abs_tol )
https://peps.python.org/pep-0485/
Привет.
Подскажите, как будут сравниваться переменные типа REAL (или LONGREAL)?
Сравнение происходит до какого-то знака?
Там ведь "шумы в хвосте"! Получается, что такое сравнение почти всегда будет FALSE?
IF rN = rM THEN
;
ENDIF
Если сравнивать сравнимое то и проблем с "шумами хвоста" не будет
IF rN = LREAL_TO_REAL(rM) THEN //есть тип, должно быть и приведение
;
ENDIF
это неявный минимальный дифф
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot