Показано с 1 по 10 из 160

Тема: CODESYS V3.5. Онлайн-FAQ

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию PRG#02. Как проверить, что число имеет значение NaN?

    Вопрос: как проверить, что число имеет значение NaN?

    Комментарий: NaN (Not-a-Number) - это особое состояние числа с плавающей точкой, возникающее при специфических (в большинстве случаев - некорректных) математических операциях. Подробнее см. в статье на Википедии.

    Ответ: например, можно воспользоваться функцией IsRealNaN из библиотеки FloatingPointUtils:

    Код:
    VAR
    	rVar:      REAL;
    	
    	xIsNaN:    BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    xIsNaN := FPU.IsRealNaN(rVar);

    или с помощью конвертации значения в строковый вид:

    Код:
    VAR
    	rVar: 	 REAL;
    	
    	sVar: 	 STRING;
    	xIsNaN:     BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    sVar := REAL_TO_STRING(rVar);
    
    xIsNaN := (sVar='#NaN');

    Можно также воспользоваться особым свойством NaN - оно не равно ни одному числу, в т.ч. и самому себе:

    Код:
    VAR
    	rVar:      REAL;
    	
    	xIsNaN:    BOOL;
    END_VAR
    
    rVar := SQRT(-1.0); // генерируем NaN
    
    xIsNaN := (rVar<>rVar);

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

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