我想知道在 python 中检查数字 x 是否为有理数(存在两个整数 n,m 以便 x=n/m)的好方法。
在 Mathematica 中,这是由函数 Rationalize[6.75]
完成的:27/4
我假设这个问题有给定准确度的答案。 有没有通用的算法来获取这两个整数?
最佳答案
在 python >= 2.6 中有一个 as_integer_ratio
花车上的方法:
>>> a = 6.75
>>> a.as_integer_ratio()
(27, 4)
>>> import math
>>> math.pi.as_integer_ratio()
(884279719003555, 281474976710656)
但是,由于 float 在编程语言中的定义方式没有无理数。
关于python - 对于给定的 fp 精度,检查 Python 中的数字是否有理数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266741/