python - 小数除以1除以1

时间:2018-02-15 21:09:56

标签: python fractions

我需要将小数转换为分数,即使它除以1也是如此。 我尝试使用分数模块,但是它给出了3而不是3 / 1,5而不是5/1等等。所以我想知道是否有可能使用分数模块或其他东西获得这种分数? / p>

3 个答案:

答案 0 :(得分:2)

您可以使用字符串格式来实现您想要的效果。

from fractions import Fraction
no = Fraction(3, 1)

str_no = "{0}/{1}".format(no.numerator, no.denominator)
print(str_no)

答案 1 :(得分:1)

您可以覆盖班级__str__以获得您喜欢的行为:

import fractions

class Fraction(fractions.Fraction):
    def __str__(self):
        return '{}/{}'.format(self.numerator, self.denominator)


x = Fraction('6/2')
print(x)
x = Fraction('1.5')
print(x)

输出:

$ python3 x.py 
3/1
3/2

答案 2 :(得分:0)

这是一种方式。

使用is_digit检查小数是否为整数,然后再添加/1

import fractions

for v in [2.0, 0.1, 0.5, 1.5, 2.0 ]:
    if v.is_integer():
        print('{} = {}/1'.format(v, fractions.Fraction.from_float(v)))
    else:
        print('{} = {}'.format(v, fractions.Fraction.from_float(v)))

输出:

2.0 = 2/1
0.1 = 3602879701896397/36028797018963968
0.5 = 1/2
1.5 = 3/2
2.0 = 2/1