我想将像“0.75”这样的字符串转换为3/4。 python是否有任何内置函数。
我知道我可以使用float(“0.75”)转换它以获得浮点值。但我只需要整数而不会失去分辨率。
我可以编写一个函数,比如将它乘以100,所以我会得到75/100,但仍然可以调整到3/4。任何想法都会非常感激。
答案 0 :(得分:4)
>>> from fractions import Fraction
>>> Fraction(0.75)
Fraction(3, 4)
请参阅docs。
一个警告:非二进制分数(即从floating point numbers that cannot be represented accurately in binary派生的分数,如0.9
)可能会产生令人惊讶的结果,除非您传递float
的字符串表示形式:
>>> Fraction(0.9)
Fraction(8106479329266893, 9007199254740992)
>>> Fraction("0.9")
Fraction(9, 10)
答案 1 :(得分:3)
Python有fractions模块。
>>> import fractions
>>> fractions.Fraction('0.75')
Fraction(3, 4)