C# TryParse와 기기 문화권 문제
자료형 변환이 필요하면 System.Convert 클래스의 메서드나 숫자 형식의 Parse, TryParse 메서드를 쓴다.
다른 형식을 숫자 형식으로 바꿀 때는 TryParse를 적극적으로 써서, bool 반환값으로 파싱이 실패한 경우를 처리한다. 원본이 문자열이면 String.IsNullOrEmpty도 함께 검사한다.
문화권에 따라 달라지는 파싱
섹션 제목: “문화권에 따라 달라지는 파싱”TryParse도 기기의 문화권(디바이스 언어 설정)에 따라 다르게 동작할 수 있다. 예를 들어 영미권에서 0.5로 쓰는 소수를 유럽권 일부 국가에서는 0,5로 표기한다.
그래서 로컬라이징이 필요한 서비스에서는 다음처럼 문화권을 고정해 파싱한다.
float.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out result);