"Не число" в формуле (NAN)

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #14647
    Evgeniy58
    Участник

    Доброго дня,
    Использую такую формулу для расчетного канала.
    ((Val(3017)+Val(3018)+Val(3019))/3)*4
    Связь осуществляется по GPRS каналу. И в то время когда значения не приходят, в этот «дорасчетный канал» вставляется 0.
    Есть ли способ возвращать не «0», а «Nan», чтобы на графике был пропуск, а не падение до 0.
    Буду благодарен за помощь!

    #14648
    Romiros
    Участник

    Stat(3017)==1&&Stat(3018)==1&&Stat(3019)==1?((Val(3017)+Val(3018)+Val(3019))/3)*4:double.NaN
    Попробуйте так.

    • Этот ответ был изменен 4 года, 2 месяца назад от Romiros.
    • Этот ответ был изменен 4 года, 2 месяца назад от Romiros.
    #14651
    Evgeniy58
    Участник

    Благодарю Вас за помощь! Попробуем, теперь стало понятно как правильно оформить данную формулу!

    #14652
    Mikhail
    Модератор

    Добрый день!
    Если каналы 3017-3019 приходят от устройства в рамках одного запроса, то формулу можно упростить
    Stat(3017) > 0 ? …
    Лучше не сравнивать == 1, а сравнивать > 0, т.к. статусы могут быть различны.
    Ещё не советую возвращать NaN, а лучше возвращать статус 0.
    То есть в итоге что-то вроде
    (Val(3017)+Val(3018)+Val(3019))/3*4; Stat(3017)

    #14655
    Romiros
    Участник

    Ещё не советую возвращать NaN, а лучше возвращать статус 0.
    Да точно, совсем забыл. Не используйте NaN. Я пробовал с NaN, но быстро от этого отказался, сразу пошли какие-то проблемы. Используйте статус 0.

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Вы должны авторизироваться для ответа в этой теме.