2010-02-22 7 views

답변

9

정말 어디에서 전화 번호를 얻을지에 따라 다릅니다.

변환하려는 숫자가 사용자 입력에서 나온 경우 locale.atoi()을 사용하십시오. 그렇게하면 사용자의 설정과 기대치와 일치하는 방식으로 숫자가 파싱됩니다.

다른 형식으로 읽는다면 항상 동일한 형식을 사용하는 파일에서 상황에 따라 int("1,234".replace(",", "")) 또는 int("1.234".replace(".", ""))을 사용하십시오. 이것은 읽기와 디버그가 쉬울뿐만 아니라 사용자의 로케일 설정에 영향을받지 않기 때문에 파서는 모든 시스템에서 작동합니다.

4

locale.atoi()으로 설정 한 후 적절한 로케일을 설정하십시오.

+0

한 일부 로케일에서 쉼표를 소수점 구분자로 사용되기 때문에 기간이 수천 구분의 역할을하면서는, 단지 빈 문자열 쉼표를 교체하는 것보다 낫다는 등 수백만 – Tarydon

+0

무엇을 따라 다름 당신은 파싱하려고합니다. 사용자 입력? 또는 고정 된 형식의 파일 (예 : 기존 시스템에서 가져온 CSV)은 무엇입니까? 같지 않아. 아래 내 대답을 참조하십시오. – ibz

2
int("1,374".replace(",","")) 
2
>>> s="1,374" 
>>> import locale 
>>> locale.setlocale(locale.LC_NUMERIC, '') 
'en_US.UTF-8' 
>>> locale.atoi(s) 
1374 
관련 문제