2010-02-05 6 views
2

을 던져 내가 플로트로 문자열을 변환하는 내 응용 프로그램을 얻을 수 없습니다변환 문자열은 오류 "잘못된 형식"

일치 "0.791794"입니다
float number = float.Parse(match); 

.

왜 작동하지 않습니까? 내가 얻는 오류는 "입력 문자열이 올바른 형식이 아닙니다."이지만 잘못된 점을 이해할 수 없습니다.

답변

7

문화 개체 (즉, InvariantCulture가 시스템에 저장되어 있고 형식이 다른 경우가 아닌 경우)를 허용하는 오버로드로 전달하는 것이 좋습니다. 현재 문화권은 쉼표가 마침표 (또는 이와 유사한 것) 대신 구분 기호로 표시되는 것으로 설정 될 수 있습니다.

또한

string x = (0.791794f).ToString() 

은 그냥 출력한다 무엇을 볼을 시도 할 수 있습니다.

CultureInfo.CurrentCulture를 확인하는 것도 도움이 될 수 있습니다.

(또한, 정신 검사 - 나는 그 따옴표는 당신에게서 있다고 가정하고, 문자열의 일부가 아닌 자신의 가치?)

+0

+1 아직까지 실행되지 않았고 왜 우리가 통과 한 문서의 수를 제공하지 않았는 지 모른다. 그러나 이것은 정말로 좋은 지적입니다. –

+0

Gah, 멍청한 노르웨이어 번호 시스템에서, 우리는 십진수 분리 기호로','를 사용하므로'match'에서'.'와 함께 작동하지 않습니다. – Phoexo

+0

예. 잘못된 형식은 현재 UI 문화권에서 예상하는 규칙과 일치하지 않는다는 것을 의미합니다. 숫자의 경우 대개 쉼표와 마침표가 같은 IME를 의미합니다. ;) .ToString, string.Format 또는 .Parse를 호출 할 때마다 일종의 CultureInfo 객체를 전달해야합니다. 즉, 가능성을 명확히하고 다른 문화 규칙을 고려하도록해야합니다. – technophile

0

matchstring 유형입니까? 그것을 형변환해야 할 수도 있습니다.

+0

'match'는'string'입니다. 나는'string match = someOtherString; '을 가지고있다. – Phoexo

0

2008

static void Main(string[] args) 
    { 
     var match = "0.791794"; 
     float number = float.Parse(match); 
     Console.Out.Write(number); 
    } 
당신은 다시 시작하십시오 migth

에서 잘 작동하는 것 같다 대 도움이 되길 바랍니다