2

「0.75」のような文字列を 3/4 に変換したい。Python には、このための組み込み関数がありますか。

float("0.75") を使用して float 値を取得できることを知っています。しかし、解像度を失うことなく、整数のみが必要です。

100 を掛けるような関数を書くことができるので、75/100 が得られますが、それでも 3/4 に評価する方法はありません。どんなアイデアでも大歓迎です。

4

2 に答える 2

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)
于 2013-02-13T12:09:18.073 に答える
3

Python にはfractionsモジュールがあります。

>>> import fractions
>>> fractions.Fraction('0.75')
Fraction(3, 4)
于 2013-02-13T12:09:05.197 に答える