2013-07-09 3 views
0

나는 왜 나에게 오류를주고있다에 관해서 궁금하지 않았다 :입력 문자열이 올바른 형식으로 C#을

Input string was not in a correct format.

화면이 null 그래서 그것이 원인이 검사를 실패하고 안 때문에이 오류가 발생합니다 예외.

if (double.Parse(textDisplay.Text) >= -2147483647 & textDisplay.Text != null) 
+0

'textDisplay.Text'의 값은 무엇입니까? –

+0

값이 null입니다. –

답변

5

먼저 null이 아닌지 확인하십시오. 또한 double 인수로 double &&을 사용하십시오. 또한 입력이 숫자가 아닌 경우에 대비하여 double.TryParse을 사용하는 것이 좋습니다.

if (textDisplay.Text != null && double.Parse(textDisplay.Text) >= -2147483647) 

더 나은 버전 :

double value = 0; 
if (double.TryParse(textDisplay.Text, out value) && value >= -2147483647) 
+0

텍스트가 null이 아닌지 확인하는 이유는 무엇입니까? TryParse는 당신을 위해 그것을 만든다 – wudzik

+0

TryParse가'null' 값들과 잘 동작하기 때문에 처음에는 make code를 좀 더 읽기 쉽고 결과가 같을 것이다. –

+0

@wudzik 참, 변경된 대답이 조금 – gzaxx

1

대신 사용 ParseTryParse하고 예외를 발생하고 유효한 경우 부울을 반환하지 않습니다

double res = 0; 
if(double.TryParse("asd", out res)) 
{ 
    var a = res; 
}; 
0

& & 대신

if (double.Parse(textDisplay.Text) >= -2147483647 && textDisplay.Text != null) 

또는

double @num; 

if(double.TryParse(textDisplay.Text, out @num) && @num >= -2147483647) 
    return @num; 
시도
0
if (double.Parse(textDisplay.Text) >= -2147483647 & textDisplay.Text != null) 

을 더블 '&'를 사용한다 : 텍스트 상자의 값이 비어 있거나

if (double.Parse(textDisplay.Text) >= -2147483647 && textDisplay.Text != null) 
0

사용 TryParse 그래서 그것은 어떤 오류가 발생하지 않습니다 null

double displayValue = 0; 
double.TryParse(textDisplay.Text, out displayValue) 

if (displayValue >= -2147483647) 
관련 문제