2013-10-10 4 views
0

저는 C#을 처음 사용하고 콘솔 응용 프로그램에서 몇 가지 시도를하고 있습니다. 사용자 입력을 가져 와서 다른 데이터 유형으로 변환 한 다음 변환 된 데이터를 표시하려고합니다.C#에서 다른 데이터 유형으로 변환하는 방법

string userInput; 
int  intInput; 
float floatInput; 

Console.WriteLine("Please enter a number: "); 
userInput = Console.ReadLine(); 

intInput = Convert.ToInt32(userInput); 
floatInput = (float)intInput; 


Console.WriteLine("String input: "+userInput+"\n"); 
Console.WriteLine("Integer input: " + intInput + "\n"); 
Console.WriteLine("Float input: " + floatInput + "\n"); 

그것은 비주얼 스튜디오 나에게 오류를 제공하지 않습니다,하지만 난 그것을 정수 숫자를 좋아하고를 표시하는 프로그램을 실행할 때 :

는 지금까지이 시도. 그러나 4.4과 같은 번호를 입력하면이 라인의 에 대해 경고가 FormatException was unhandled과 함께 중지됩니다.

내 지역 창 쇼 :

userInput = "4.4" 
intInput = 4 
floatInput = 4.0 

왜이 오류는 무엇입니까? 데이터 형식을 변환하는 올바른 방법입니까?

편집 : 사용자가 입력 한 내용을 모르기 때문에 어떻게 든 테스트 할 수 있습니까?

+0

'floatInput = Convert.ToSingle (UserInput 사용자)' –

답변

1

4.4는 정수가 아니며, 아마도 십진수입니다.

십진수 입력을 허용하려면 변수 유형을 변경 한 다음 Convert.ToDecimal을 대신 사용해야합니다.

3

"4.4"따라서이 변환 할 수 없습니다, 정수를 나타내는 값이 아니기 때문에이 오류를 얻고있다

오류가 발생했습니다.

가 처리 할 수있는 몇 가지 방법이 있다는 것을 알고 있어야 변환

http://www.tutorialspoint.com/csharp/csharp_data_types.htm

:

다음 기본 데이터 유형과 전형적인 값의 더 나은 이해를 얻기위한 훌륭한 기사입니다 문자열을 다른 데이터 형식으로 '변환'하기 위해 여기에 설정 한 작업.

정수의 경우, 예를 들어, 당신은 TryParse을 사용할 수

http://msdn.microsoft.com/en-us/library/f02979c7.aspx

TryParse는 예외를 발생하고이 가지고로 응용 프로그램을 중단하지 않을 것입니다.

예외 처리

또한 '처리되지 않은'는 여기에 코드가 가질 수있는 오류의 종류를 처리하지 않음을 의미주의 - 적절한 시도 캐치 블록 :

http://msdn.microsoft.com/en-us/library/vstudio/0yd65esw.aspx

Try Catch 블록을 사용하여 잠재적으로 잘못된 코드를 래핑하면 예외를보다 정상적으로 처리 할 수 ​​있습니다.

0

datatype test = "xyz"; // 데이터 유형 - int, 부동 ..

데이터 유형.TryParse (변수, 출력 테스트);

경우 (테스트 == "XYZ") // 파싱 할 수

관련 문제