2011-07-26 6 views
0
Console.WriteLine("Enter a double number"); 
string numberInput = Console.ReadLine(); 


double number = Double.Parse(numberInput) 

제 질문은 마지막 코드 줄입니다. ToDouble과 동일한 작업을 수행하고 있습니까?C에서 구문 분석 이해

답변

6

매우 짧은 대답은 다음과 같습니다

는 이중으로 문자열 값을 변환합니다. 예 :

"2.3"(문자열)은 2.3 (이중)이됩니다.

이 작업을 수행하는 방법에 대한 많은 선택이 있습니다

Double.TryParse()

Convert.ToDouble()

은 입력 문자열에가는 것을 100 %를 모르면 Double.TryParse()는 편리 숫자 값이되어야합니다. 그것은이다

+1

특히, 입력이 무엇이든이 지정된 경우에 TryParse는 항목이 변환 될지 여부를 확인하는 더 명확한 방법입니다. 그렇지 않으면 Convert.ToDouble 시도/catch합니다. TryParse가 이것을 처리합니다. –

+0

감사합니다. 나는 Convert.ToDouble 및 Double.Parse에 대해 혼란스러워했다. 나는 그들이 비슷한 일을했다고 추측했지만 확실하지 않았습니다. TryParse()에 대한 정보 주셔서 감사합니다 – Maya

4

stringdouble에가의 Console.ReadLine() 방법은 문자열 데이터를 읽고 double에 해당 문자열로 변환, numberInput 이름 string 변수에 저장 변환 Double.Parse 우리가 그것에 numberInput 문자열을 전달이라고하며 변환합니다 그것은 두 배로한다.

3

"지정된 스타일의 숫자 문자열 표현을 해당하는 배정 밀도 부동 소수점 숫자로 변환합니다."

MSDN을 참조하십시오.

+0

Doh, 당신이 나를 이길! –

3

이 경우 숫자 입력으로 String을 입력하고 해석합니다 (Double). StringDouble은 완전히 다른 유형입니다. 하나는 수학적 연산을 Double에서 수행 할 수 있습니다.

3

그것은 Double.Parse 메소드를 호출합니다. MSDN 페이지에 따르면

숫자의 문자열 표현을 해당하는 배정 밀도 부동 소수점 숫자로 변환합니다. @DoctorMick'sanswer 당으로

: 그것은 Convert.ToDouble 방법과 같은 일을한다.

코드가 문자 시퀀스라고 생각할 수있는 string을 사용자에게 제공하기 때문에이 경우이 코드가 사용됩니다. 우리는 이것을 우리가 작업하고자하는 적절한 유형,이 경우에는 Double으로 바꾸기를 원할 것입니다. Double에는이를위한 구문 분석 방법이 있습니다.

2

변수 numberInput에 읽은 데이터는 문자열입니다. 마지막 행은 이것을 유형 System.Double으로 구. 분석하여 다른 조작에 대해보다 잘 유형화됩니다.

numberInput에 유효한 숫자 값이 포함되어 있다는 보장이 없으므로 Parse 메서드는 catch 할 수있는 예외를 throw합니다.

2

아직 7 가지 답변이 있지만 모두가 ToDouble과 동일한 일을하는 것을 간과 한 것 같습니다. 짧은 대답은 아직, 그것은 똑같은, 사실 ToDouble 전화 double.Parsse 내부입니다.