2009-04-17 3 views
1

C++을 사용하는 .NET의 텍스트 상자에서 double 값을 가져 오는 방법은 무엇입니까? 텍스트를 가져와 atof()를 수행해야합니까, 아니면 더 쉬운 방법이 있습니까?C++의 .Net TextBox에서 double 값 가져 오기

+0

".net"이라고 말하면 C++/CLI를 사용하고 있거나 C++에서 Visual Studio.NET을 사용하고 있다는 뜻입니까? –

답변

3

네, 텍스트를 가져 와서 구문 분석해야합니다. .NET 내에서 사용할 수 있지만 대신 atof()을 사용하면 사용자 오류를보다 쉽게 ​​감지 할 수 있습니다.

Convert.ToDoubleDouble.Parse은 모두 실패시 예외를 발생시킵니다. atof()은 내가 기억하는 잘못된 입력을 자동으로 무시합니다. Double.TryParse은 성공/실패를 나타 내기 위해 true/false을 반환하고 out 매개 변수를 사용하여 구문 분석 결과를 전달합니다. 이것은 대개 사용자 입력을 위해 올바른 방법입니다. 오류를 감지 할 수 있기를 원하지만 유효하지 않은 데이터를 입력하는 사용자가 예외적 인 상황이 아니므로 예외는 실제로 적절하지 않습니다.

1

텍스트를 구문 분석해야합니다.

Double value = 0.0; 

if (Double.TryParse(textBox.Text, out value)) 
{ 
    // Value is valid here. 
} 
else 
{ 
    // Handle invalid input here. 
} 
+2

오류가 발생하면 FormatException을 던질 것입니다. Double.Parse()를 사용하는 것뿐입니다 (또한 "value"를 out 매개 변수로 전달해야합니다. 즉, 초기화 할 필요가 없습니다.). –

+0

나는 방금 입력 한 값을 빨리 빠트 렸습니다. 단일 매개 변수 오버로드가 전혀 없습니다. 예외는 예제로만 의미가 있지만 올바른 예입니다. 그리고 저는 변수를 명시 적으로 초기화하는 것을 선호합니다. –

+0

변수를 명시 적으로 초기화하는 경우 해당 값을 사용할 수 없으면 오도 된 것일 수 있습니다. out 매개 변수로 즉시 사용되면 예외가 throw되지 않는 한 모든 값을 겹쳐 쓰게됩니다. 왜 이전 가치가 중요하다고 생각합니까? –