Как проверить, является ли число математически неопределенным или неопределенным в 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