「0.75」のような文字列を 3/4 に変換したい。Python には、このための組み込み関数がありますか。
float("0.75") を使用して float 値を取得できることを知っています。しかし、解像度を失うことなく、整数のみが必要です。
100 を掛けるような関数を書くことができるので、75/100 が得られますが、それでも 3/4 に評価する方法はありません。どんなアイデアでも大歓迎です。
>>> from fractions import Fraction
>>> Fraction(0.75)
Fraction(3, 4)
ドキュメントを参照してください。
1 つの注意点: 非 2 進数の分数 (つまり、 のような2 進数で正確に表現できない浮動小数点数0.9
から派生した分数) は、 の文字列表現を渡さない限り、驚くべき結果をもたらす可能性がありますfloat
。
>>> Fraction(0.9)
Fraction(8106479329266893, 9007199254740992)
>>> Fraction("0.9")
Fraction(9, 10)
Python にはfractionsモジュールがあります。
>>> import fractions
>>> fractions.Fraction('0.75')
Fraction(3, 4)