2011-09-11 5 views
5

나는 혼합 된 숫자 (숫자 또는 문자열로 입력)를 부동 소수점 숫자 또는 정수로 쉽게 변환 할 수 있는지 궁금합니다. 분수 모듈을 살펴 봤지만 원하는대로 할 수 없거나 잘 읽지 못했던 것 같습니다.혼합 분수를 float로 쉽게 변환 할 수있는 Python 모듈이 있습니까?

내 자신의 기능을 작성하기 전에 이미 무언가가 있는지 알고 싶었습니다. 여기에 내가 BTW, 찾고 있어요 무엇 :

convert(1 1/2) 

또는

convert('1 1/2') 

감사합니다.

답변

9

내장 된 Fraction 클래스는 사용자와 같이 혼합 분수를 지원하지는 않지만 공간에서 분할하는 것은 그리 어렵지 않습니다. 예를 들어, 1 + fractions.Fraction('1/2') 또는

def convert(f): 
    whole, frac = f.split() 
    return int(whole) + fractions.Fraction(frac) 
+0

감사합니다. 선생님, 예. 저는 ('') 분할 할 수 있습니다. – arscariosus

0

매우 단순한 들어 난 그냥 그렇게하는 분수를 확장 할 Mixed 클래스를 썼다. 출처는 here입니다.

>>> float(Mixed('6 7/8')) 
6.875 
>>> float(Mixed(1,1,2)) # 1 1/2 
1.5 
관련 문제