Показано с 1 по 8 из 8

Тема: Сравнение REAL (или LONGREAL)

  1. #1

    По умолчанию Сравнение REAL (или LONGREAL)

    Привет.
    Подскажите, как будут сравниваться переменные типа REAL (или LONGREAL)?
    Сравнение происходит до какого-то знака?
    Там ведь "шумы в хвосте"! Получается, что такое сравнение почти всегда будет FALSE?
    Код:
    IF rN = rM THEN
        ;
    ENDIF

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,019

    По умолчанию

    проверяйте на больше/меньше сравнивать на равенство real это утопия.

  3. #3
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,981

    По умолчанию

    У меня проблем не возникает:

    Сравнение на равенство с допуском_3.PNG
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #4

    По умолчанию

    Надо смотреть на абсолютное значение разницы между переменными.

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,019

    По умолчанию

    Сергей0308 а вы не ручками, а добавьте сюда преобразование от датчика какого-нибудь...

  6. #6

    По умолчанию

    Использовал функцию OSCAT_BASIC.DIFFER, а максимальное отличие вычисляю в процентах.

    Screenshot 2024-11-13 110604.png

  7. #7
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,425

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Использовал функцию OSCAT_BASIC.DIFFER, а максимальное отличие вычисляю в процентах.
    можете написать и свою функцию, она умещается в одну строчку abs(a-b) <= max( rel_tol * max(abs(a), abs(b)), abs_tol )
    https://peps.python.org/pep-0485/
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,729

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Привет.
    Подскажите, как будут сравниваться переменные типа REAL (или LONGREAL)?
    Сравнение происходит до какого-то знака?
    Там ведь "шумы в хвосте"! Получается, что такое сравнение почти всегда будет FALSE?
    Код:
    IF rN = rM THEN
        ;
    ENDIF
    Если сравнивать сравнимое то и проблем с "шумами хвоста" не будет
    Код:
    IF rN = LREAL_TO_REAL(rM) THEN //есть тип, должно быть и приведение
        ;
    ENDIF
    это неявный минимальный дифф

Похожие темы

  1. сравнение массивов
    от Seyran в разделе ПЛК1хх [М02]
    Ответов: 1
    Последнее сообщение: 29.05.2020, 08:24
  2. ФБ Сравнение строк
    от S.A.D. в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 17.08.2012, 14:18
  3. Сравнение различных ПЛК
    от Nick.Rodionov в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 29.10.2011, 20:15
  4. Сравнение времени
    от Georgiy в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 15.03.2011, 23:33
  5. сравнение в Ld
    от Alr в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 04.08.2010, 18:54

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •