2016-09-29 2 views
0

私のプログラムの検証の1つでは、ゼロの配当)。私は(と、それはそれを行うための非常に非効率的な方法でもよい)これまでに試した何数値が数学的に未定義であるかどうかを確認する方法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機能その失敗するでしょう。オブジェクトに格納されている未定義の数値を捕まえるには良い方法は何だと思いますか?

P.S.残念ながら、セッション(「結果」)が発生する機能を検証することはできません。これは、別のコーダーで作成された別のモジュールが、コーディングしているモジュールに渡しているだけなのでです。あなたが代わりにそれを使用できるように

+0

は 'ブール= doubleとして有効な薄暗いFalseになります。 TryParse(セッション( "result")、x) '。 'Session(" result ")' result'が定義されていないと 'Nothing'を返します – Slai

+0

こんにちは!セッションが何も返さないという問題はありません。セッションは、数学的に定義されていないか、または不定数(ゼロまたは無限大で数を除算したもの、または無限を掛けたものなど)になります。 – lulutanseco

+0

@lulutanseco - 'Session(" result ")'に格納されている値の型は何ですか? – Enigmativity

答えて

2

System.Decimalは、NaNまたは無限大を持っていません。

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

それはSession("result")Double.NaNであれば、.PositiveInfinityまたは.NegativeInfinity

+0

yay!わかった!ありがとうございました! :* – lulutanseco

関連する問題