Как проверить, является ли число математически неопределенным или неопределенным в vb.net

В одной из проверок моей программы мне нужно проверить, не является ли результирующее число, сохраненное в сеансе, неопределенным (это связано с тем, что одна из формул может иметь дивиденды ноль).

То, что я пробовал до сих пор (и это может быть очень неэффективный способ сделать это), это:

  Dim x As Double
  Dim valid As Boolean = True
  Try
      Double.TryParse(Session("result"), x)
  Catch ex As Exception
      valid = False   
  End Try

Я полагал, что если число, сохраненное в сеансе, является неопределенным или неопределенным, функция TryParse завершится ошибкой. Как вы думаете, что является лучшим способом отловить неопределенные числа, хранящиеся в объекте?

PS К сожалению, я не могу проверить функцию, из которой будет происходить Сессия ("результат"). Это потому, что другой модуль, созданный другим кодером, просто передает его модулю, который я кодирую.

1 ответ

System.Decimal не имеет NaN или бесконечность, так что вы можете использовать его вместо:

Dim valid = Decimal.TryParse(Session("result").ToString, x)

Это приведет к False если Session("result") является Double.NaN, .PositiveInfinity или же .NegativeInfinity

Другие вопросы по тегам