首页 > 解决方案 > 将浮点数转换为分数

问题描述

我正在用 Python3 编写。我在我的代码中创建了两个列表,我想在循环中将它们“连接”为分数。除了使用 Fractions 库之外,还有其他方法吗?不幸的是,我不能使用它,因为这是任务要求。当分数是浮点数(例如 1/3)时会出现问题。我怎么解决这个问题?

这是一个例子:

p = [1,2,3]
q = [3,5,9]

frac = []
    for i in p:
      for j in q:
        f = i/j
        if f not in frac:
          frac.append(f)



标签: pythonpython-3.xfractions

解决方案


您可以使用 fractions.Fraction 类型。

  1. 使用以下方法导入: from fractions import Fraction
  2. 用分数转换你的 f 方程 f = p/q;f = 分数(p/q)
  3. 然后也使用字符串转换;f = str(分数(p/q))

    from fractions import Fraction
    f = str(Fraction(p/q))
    

推荐阅读