有理数を扱うためのライブラリfractionsを使うと有理数(分数計算)を簡単に行うことができます。
import fractions
from decimal import Decimal
# fractions.Fraction(numerator=0, denominator=1)
fractions.Fraction() # => Fraction(0, 1) 0/1
fractions.Fraction(6) # => Fraction(6, 1) 6/1
fractions.Fraction(6, 12) # => Fraction(1, 2) 1/2
# fractions.Fraction(other_fraction)
fractions.Fraction(fractions.Fraction(6, 12)) # => Fraction(1, 2) 1/2
# fractions.Fraction(float)
fractions.Fraction(1.25) # => Fraction(5, 4) 5/4
# fractions.Fraction(decimal)
fractions.Fraction(Decimal(0.5)) # => Fraction(1, 2) 1/2
# fractions.Fraction(string)
fractions.Fraction('1.75') # => Fraction(7, 4) 7/4
f = fractions.Fraction(6, 12)
f.numerator # => 1
f.denominator # => 2
f.as_integer_ratio() # => (1, 2)
# 負号は分子につく
fractions.Fraction(-6, 12).as_integer_ratio() # => (-1, 2)
import math
fractions.Fraction(math.pi).limit_denominator() # => Fraction(3126535, 995207)
fractions.Fraction(math.pi).limit_denominator(100) # => Fraction(311, 99)
fractions.Fraction(1.1).limit_denominator() # => Fraction(11, 10)
fractions.Fraction(201,100).__floor__() # => 2
math.floor(fractions.Fraction(201,100)) # => 2
fractions.Fraction(201,100).__ceil__() # => 3
math.ceil(fractions.Fraction(201,100)) # => 3
fractions.Fraction(201,100).__round__() # => 2
round(fractions.Fraction(201,100)) # => 2
fractions.Fraction.from_float(1.1) # => Fraction(2476979795053773, 2251799813685248)
fractions.Fraction.from_decimal(Decimal(1.1)) # => Fraction(2476979795053773, 2251799813685248)
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント