python - 分数不完整

标签 python fractions

<分区>

我正在使用 python 的 fractions 模块。

我正在尝试获取近似于 2*.5 的分数。问题是,当我使用 Fraction 命令时,它不会返回我想要的结果,因为例如,在 i=2 中,返回的分数是 146666667/1000000000,但我希望它返回 17/12 (2 的第三个近似值*.5)。我该如何解决?

代码是这样的:

ai=2
bi=1
n=5
for i in range(n):
  ai=2+float(bi)/ai
  F=fr.Fraction(str(ai-1))
  print F

有人可以帮帮我吗?

最佳答案

如果您要处理分数,请不要使用 float 进行部分计算。您可以通过将 ai 设为分数来执行所有关于分数的算术运算:

import fractions
ai = fractions.Fraction(2)
bi = 1
n = 5
for i in range(n):
    ai = 2 + bi / ai
    F = ai - 1
    print(F)

产量

3/2
7/5
17/12
41/29
99/70

关于python - 分数不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20820999/

相关文章:

python - 关键字匹配在 pandas 列中给出重复的单词?

python - Pandas 数据框中列的输出从 float 到货币(负值)

java - 如何在 java 对象上使用 +-*/这样的操作

html - 如何使用html写分数值?

c++ - 如何在C++中将数字添加到分数?

python - Jupyter Notebook : 'head' is not recognized as an internal or external command, 可运行的程序或批处理文件

python - 在 Python 2.7 中获取输入的最快方法是什么?

python - 国际象棋引擎的移动顺序

c++ - 将八进制分数转换为十进制 - C++

java - 小数java