>백엔드 개발 >C++ >로케일 설정에 관계없이 소수점이 있는 문자열을 double로 안정적으로 구문 분석하려면 어떻게 해야 합니까?

로케일 설정에 관계없이 소수점이 있는 문자열을 double로 안정적으로 구문 분석하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-28 01:36:09317검색

How can I reliably parse strings with decimal points into doubles, regardless of locale settings?

강력한 문자열-이중 변환: 로케일 변형 처리

double.Parse()을 사용하여 소수점이 포함된 문자열을 double로 직접 변환하면 로케일별 소수 구분 기호로 인해 문제가 발생할 수 있습니다. 예를 들어, 일부 로케일에서는 쉼표(,)가 소수 구분 기호로 사용되어 문자열에 마침표(.)가 사용되면 구문 분석 오류가 발생할 수 있습니다.

로케일 설정에 관계없이 일관된 구문 분석을 보장하려면 CultureInfo.InvariantCulture 메소드 내에서 double.Parse() 매개변수를 활용하세요. 이렇게 하면 시스템의 현재 로케일을 무시하고 문화권 불변 접근 방식을 사용하여 구문 분석 작업을 수행할 수 있습니다.

예: double.Parse("3,5", CultureInfo.InvariantCulture)은 현재 로캘에서 소수 구분 기호로 쉼표를 사용하더라도 "3,5"를 3.5로 올바르게 구문 분석합니다. 마찬가지로 double.Parse("3.5", CultureInfo.InvariantCulture)는 로케일에 관계없이 항상 "3.5"를 올바르게 구문 분석합니다. 이 접근 방식은 로케일에 따른 소수 구분 기호 변형으로 인해 발생할 수 있는 구문 분석 오류를 제거합니다.

위 내용은 로케일 설정에 관계없이 소수점이 있는 문자열을 double로 안정적으로 구문 분석하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.