2012-09-14 6 views
2

로캘에서 소수 구분 기호는 ','입니다.C# 로캘에서 문자열을 double로 변환합니다.

그러나 여전히 '.'을 사용하는 숫자와 함께 작동하는 C# 응용 프로그램을 작성하고 싶습니다. 소수점 구분 기호로 사용됩니다.

 string b = "0,5"; 
     double db = double.Parse(b); // gives 0.5 

     string a = "0.5"; 
     double da = double.Parse(a); // gives 5, however i would like to get 0.5 
+0

가능한 복제 http://stackoverflow.com/questions/1354924/c-how-do-i-parse-a-string-with-a-decimal-point-to-a-double –

+0

http : // stackoverflow .com/questions/2583362/how-to-convert-string-to-with-appropriate-cultureinfo 여기를보십시오 – Borgleader

답변

13

당신은 double.Parse, 예를 들어,에 두 번째 인수로 문화를 지정해야

double da = double.Parse(a, CultureInfo.InvariantCulture); 

거의 모든 포맷의/분석 방법은 IFormatProvider을 복용 과부하가 있고, IFormatProvider의 가장 일반적으로 지정된 구현 CultureInfo입니다.

+0

문자열 내 값이 불변의 문화권을 사용하여 저장된 경우에만 작동합니다. 그렇지 않다면, 0.5는 0.5로 분석 될 것이고, 0.5는 5로 분석 될 것입니다 ... 궁극적 인 해결책을 얻을 수있는 방법이없는 것 같습니다. – dzendras

+0

@dzendras : 질문에는 " '.'기호를 사용하는 숫자와 함께 작동하는 C# 응용 프로그램을 작성해야합니다. 소수 구분 기호로 "- 답변은 해당 요구 사항을 충족시키기위한 것입니다. –