프로그래밍
C#에서의 숫자 검사와 변환
야라바
2015. 12. 18. 15:51
728x90
어떤 프로그래밍 언어이든지 타입간 변환은 자주 실수하거나 무심결에 넘겨버리고 하는 이슈입니다. 특히 문자열을 숫자로 전환해서 사용하는 과정에 꼼꼼하게 처리해 두지 않으면 불필요한 예외(Exception) 발생으로 곤혹함을 겪고는 합니다.
is_digit = false; if (str.Length == 1 && int.TryParse(str, out tmp_n)) is_digit = true;
위의 코드는 문자열이 한자리의 숫자인지를 검사하는 로직으로 정수, 부동소수점수 각 타입별로 제공하는 TryParse 메소드를 적절하게 활용 할 수 있습니다. byte.TryParse, int.TryParse, Int16.TryParse, Int32.TryParse, Int64.TryParse, uint.TryParse, UInt16.TryParse, UInt32.TryParse, UInt64.TryParse, float.TryParse, Double.TryParse 처럼 각 타입별로 제공하는 TryParse 메소드는 문자열에 있는 숫자가 해당 타입으로 전환되면 true를 리턴합니다.
try { port = Convert.ToInt16(_port); lowvalue = float.Parse(_value); } catch (Exception ex) { port = 0; lowvalue = 0.0; errorMsg = ex.Message; }
위의 코드는 Convert클래스의 변환 함수나 각 타입별 Parse() 메소드를 사용하는 문자열을 숫자로 변환하는 과정으로 주의할 점은 TryParse의 경우에는 예외를 발생시키지 않지만 Convert클래스의 변환 함수나 각 타입별 Parse() 메소드의 경우에는 문자열을 정상적으로 숫자로 변환할 수 없는 경우 예외를 발생시키므로 용도에 따라 적절하게 사용해야 합니다.
728x90