import fractions
유리수를 다루는 모듈, 파이썬 표준 라이브러리에 있다.
Fraction(분자, 분모)
기약분수인 Fractions 객체가 생성된다.
객체끼리의 연산이 가능하다.
import fractions
a = fractions.Fraction(1,3) # a = 1/3
b = fractions.Fraction(0.5) # 소수가 분수로 변환되어 1/2이 된다.
print(a+b)
#5/6
print(float(a))
#0.3333333333333333
분자: numerator, 분모: denominator
from fractions import Fraction
a = Fraction(1,3)
print(a.numerator, a.denominator)
소수.as_integer_ratio()
동일한 값의 기약분수를 (분자, 분모)튜플로 반환한다.
print(0.75.as_integer_ratio())
#반환값 (3,4)
(Fracrion객체).is_integer()
분수가 정수이면 True를, 아니면 False를 반환한다.
from fractions import Fraction
a = Fracions(1,2)
print(a.is_integer())
limit_denominator(max_denominator=1000000)
분모가 최대 max_denominator인 self에 가장 근사한 Fractions를 찾아서 반환한다.
from fractions import Fraction
Fraction(3.141592).limit_denominator(1000) #Fraction(355,113)
Fraction(3.141592).limit_denominator(100) #Fracions(311,99)
from math import pi, cos
Fraction(cos(pi/3))
#Fraction(4503599627370497, 9007199254740992)
Fraction(cos(pi/3)).limit_denominator()
#Fraction(1, 2)
Fraction(1.1).limit_denominator()
#Fraction(11, 10)
floor(Fraction객체)
가장 작은 int <= self 를 반환한다. (math.floor()과 동일)
천장함수는 ceil(Fraction)
from math import floor
frac = Fraction(355,113) #위에 만든 파이 근사값
print(frac.floor())
#3
from fractions import Fraction
frac = Fraction(5,2)
print('{0}'.format(frac))
#5/2