python小数除以1

2024-04-19 09:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要把小数转换成分数,即使它被1除了。 我试着使用分数模块,但是它给出了,比如说,3而不是3/1,5而不是5/1等等,所以我想知道是否有任何可能得到这种分数使用分数模块或其他东西?你知道吗


Tags: 模块分数小数
3条回答

您可以重写类的__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

可以使用字符串格式来实现所需的内容。你知道吗

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

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

这里有一个方法。你知道吗

使用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

相关问题 更多 >