C #에서 문자열을 부동 소수점으로 변환
"41.00027357629127"과 같은 문자열을 변환하고 있으며 사용하고 있습니다.
Convert.ToSingle("41.00027357629127");
또는
float.Parse("41.00027357629127");
이러한 메서드는 4.10002732E + 15를 반환 합니다.
float로 변환 할 때 "41.00027357629127"을 원합니다. 이 문자열은 동일해야합니다 ...
스레드의 로케일은 소수점이 "."대신 ","로 설정됩니다.
이것을 사용해보십시오 :
float.Parse("41.00027357629127", CultureInfo.InvariantCulture.NumberFormat);
그러나 float는 그만큼의 정밀도를 보유 할 수 없습니다. 그렇게하려면 double 또는 Decimal을 사용해야합니다.
첫째, 디버거에서 볼 수 있는 숫자 의 표현 일뿐 float
입니다. 실제 값은 약 정확한 (만큼 그것이 가능으로)입니다.
참고 : 부동 소수점 숫자와 문자열을 다룰 때는 항상 CultureInfo 정보를 사용하십시오 .
float.Parse("41.00027357629127",
System.Globalization.CultureInfo.InvariantCulture);
이것은 단지 예일뿐입니다. 귀하의 사례에 적합한 문화를 선택하십시오.
다음을 사용할 수 있습니다.
float asd = (float) Convert.ToDouble("41.00027357629127");
사용하다 Convert.ToDouble("41.00027357629127");
float 의 정밀도 는 7 자리입니다. 전체 로트를 유지하려면 15-16 자리 숫자를 유지 하는 이중 유형 을 사용해야합니다 . 서식에 대해서는 doubles 서식 에 대한 게시물을 참조하십시오 . 그리고 C #의 소수 구분 기호에 대해 걱정할 필요가 있습니다.
당신은 할 수 있습니다 double.Parse("41.00027357629127");
더 정확한 값을 얻으려면 float 대신 double로 구문 분석을 사용할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/11202673/converting-string-to-float-in-c-sharp
'development' 카테고리의 다른 글
Xcode 4 : 빌드 실패, 문제 없음 (0) | 2020.09.06 |
---|---|
C ++ 11에 C # 스타일 속성이 있습니까? (0) | 2020.09.06 |
w3wp 프로세스를 찾을 수 없습니다. (0) | 2020.09.06 |
표준 WPF 탭 컨트롤에 선택한 탭 변경 이벤트가 있습니까? (0) | 2020.09.06 |
"time"명령의 출력을 어떻게 리디렉션 할 수 있습니까? (0) | 2020.09.06 |