2016-09-29 5 views
0

내 프로그램의 유효성 검사 중 하나에서 세션에 저장된 결과 숫자가 정의되지 않았는지 확인해야합니다 (수식 중 하나가 0의 배당금). 나는 (그리고 그 일을 매우 비효율적 인 방법이 될 수 있습니다) 지금까지 시도 무엇숫자가 수학적으로 정의되지 않았거나 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. 불행히도 세션 ("결과")이 시작될 기능을 검증 할 수 없습니다. 이것은 다른 코더가 만든 다른 모듈이 코딩중인 모듈로 전달하기 때문입니다.

+0

.NegativeInfinity는'부울 = 더블 유효한 어둡게한다. TryParse (세션 ("result"), x)'. 'Session' ("result")'result'가 정의되어 있지 않으면'Nothing'을 반환합니다. – Slai

+0

Hello! 문제는 아무것도 리턴하지 않는 세션이 아닙니다. 세션은 수학적으로 정의되지 않거나 정의되지 않은 숫자 (숫자를 0 또는 무한대로 나누거나 무한대를 곱한 결과 등)가됩니다. – lulutanseco

+0

@lulutanseco -'Session ("result")'에 저장된 값의 타입은 무엇입니까? – Enigmativity

답변

2

System.DecimalNaN 또는 무한하지 않기 때문에 대신 사용할 수 있습니다 :

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

False가 발생합니다 Session("result") 경우 Double.NaN, .PositiveInfinity 또는

+0

yay! 알 겠어! 고맙습니다! : * – lulutanseco