2017-12-19 39 views
1

오늘 Windows 7에서 내 프로그램을 테스트했습니다. 그것은 작동하지 않았다, 나는 오류를 발견. 상황에 따라float parse는 Windows 7 또는 8에서 다릅니 까?

는 :

는 내가 플로트로 문자열을 변환. Windows 8 : float.Parse (String.Replace(".", ","))

하지만 Windows 7에서는 크래시가 발생하지 않도록 직접 실행해야합니다.

윈도우 7 : float.Parse(String.Replace (",", "."))

윈도우 7 플로트 = 50.00

윈도우 8 플로트 = 50,50

왜 그렇습니까?

이 문제를 해결하는 좋은 방법이 있습니까?

+5

귀하의 기계 중 하나가 유럽 사용자가 사용하고 있습니까? 플로트는 기본적으로 사용자 위치 규칙을 사용하여 형식이 지정되거나 파싱됩니다. –

+3

현재 culture를 피하려면'float.Parse ("", System.Globalization.CultureInfo.InvariantCulture)'를 사용하십시오. – Kalten

답변

4

귀하의 지역/현지화 설정은 Windows 7 또는 8과 관련이 없습니다. '.'을 항상 파싱 할 수 있기를 원한다면 대부분의 구문 분석 함수의 두 번째 인수로 System.Globalization.CultureInfo.InvariantCulture을 지정할 수 있습니다.

+0

감사합니다. 나는 InvariantCulture에 대해 더 많이 읽었습니다. :) – Staubi