2011-10-08 4 views
1

나는 C#을 배우고 있는데 사용자가 유효 통화 금액을 입력했는지 확인해야하는 문제가있다. 알파벳 문자는없고 음수는 없습니다.C# 입력 유효성 검사 양수 확인

지금까지 프로그램의 모든 내용을 특정 입력 유효성 검사를 제외하고 완료했습니다.

입력 값을 숫자로 변환하려면 : originalRate = Double.Parse (txtValue.Text);

그 밑에 나는 뒤죽박죽이다. 내가 주변에서 놀고있다 : bool isValid = Double.TryParse (txtValue.Text,);

공통 컴파일러 런타임 오류가 발생합니다. 입력 문자열의 형식이 올바르지 않습니다.. 나는 그것이 무엇인지를 안다. 그것은 내가 확인하고있는 것이다. 저는 이것이 매우 기본적인 것들이라는 것을 압니다 (이것은 제 첫 번째 C# 클래스입니다). 스택 오버플로를 검색 한 적이 있는데 비슷한 솔루션 중 어느 것도이 시점에서 나에게 많은 의미가 있습니다. 나는 TryParse 메서드 십진수 클래스를 사용하라는 말을 들었지만 잘못 사용한 것처럼 느낍니다.

도움을 주셔서 감사합니다. 여기

+1

이 BTW 컴파일러 오류가 아닙니다 같은 것을 double.TryParse()

의 두 번째 오버로드를 사용하여 시도해 볼 수도, 통화 문자열을 구문 분석합니다. 컴파일 타임이 아니기 때문에 런타임에 발생하므로 런타임 오류입니다. – Andreas

+0

설명해 주셔서 감사합니다. -bg – needsurf

답변

3

당신이 MDSN 페이지가 몇 가지 예제를 가지고 double.TryParse()

double d; 
bool isValid = Double.TryParse(txtValue.Text, out d); 

사용 방법은 다음과 같습니다.

double d; 
bool isValid = double.TryParse(txtValue.Text, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out d); 
+0

그게 전부 야! 와우 감사합니다. 훌륭하게 작동합니다. – needsurf

2
double result; 

if (double.TryParse(txtValue.text, out result)) 
{ 
    // The user typed a valid number. 
    // Do something with it (it’s in “result”). 
} 
else 
{ 
    // The user typed something invalid. 
    MessageBox.Show("Please type in a number."); 
}