>백엔드 개발 >파이썬 튜토리얼 >Python에서 쉼표와 점이 있는 문자열을 부동 소수점으로 변환하는 방법은 무엇입니까?

Python에서 쉼표와 점이 있는 문자열을 부동 소수점으로 변환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-01 10:36:08286검색

How to Convert a String with Commas and Dots to a Float in Python?

Python에서 점과 쉼표가 포함된 문자열을 부동 소수점으로 변환

문제

다음과 같은 문자열을 어떻게 변환할 수 있나요? "123,456.908"을 Python의 123456.908과 같은 부동소수점으로 변환하시겠습니까?

해결책: 현지화 서비스 사용

Python의 현지화 서비스를 사용하면 로캘별 처리를 수행할 수 있습니다.

기본 로캘

기본 로캘은 지역 형식 지정 규칙을 고려하지 않는 "C" 설정을 사용합니다. 따라서 기본적으로 atof(string):

  • 쉼표를 소수 구분 기호로 해석합니다.
  • 천 단위 구분 기호를 처리하지 않습니다.

이 문제를 해결하려면 , 데이터의 언어와 일치하도록 로케일을 명시적으로 설정해야 합니다.

환경에서 로케일 사용

setlocale(LC_ALL, '')을 사용하여 환경에서 사용자가 선호하는 로케일 설정을 읽을 수 있습니다. 이를 통해 locale.atof와 같은 로케일 인식 메소드가 천 단위 구분 기호를 올바르게 처리할 수 있습니다.

로케일을 명시적으로 설정

또한 setlocale( LC_NUMERIC, locale_string). 이를 통해 숫자에 대해서만 지역화된 서식 지정 및 구문 분석이 가능합니다.

주의사항

로케일 설정은 프로그램 동작 전체에 영향을 미칠 수 있으며 스레드로부터 안전하지 않습니다. 이 작업은 신중하고 아껴서 수행해야 합니다. 일반적으로 로케일 독립적인 데이터 처리를 위해 국제화 라이브러리를 사용하는 것이 좋습니다.

위 내용은 Python에서 쉼표와 점이 있는 문자열을 부동 소수점으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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