python - 对于给定的 fp 精度,检查 Python 中的数字是否有理数

标签 python algorithm math floating-point floating-accuracy

我想知道在 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/

相关文章:

关于编解码器和 utf-8 的 python 菜鸟问题

java - 基本的 Java 算法给我一个 nullpointerexception 错误?

algorithm - 有谁知道如何进行 "inverse"三线性插值?

python - 使用flask run vs python app.py vs python -m flask run有什么区别?

python - http.client.RemoteDisconnected : Remote end closed connection without response SELENIUM/PYTHON

c++ - Levenshtein Edit Distance 不计算编辑距离

javascript - 将数字数组分成相等部分的子数组,并从给定的整数中随机化

math - 将二维旋转矩阵转换为欧拉角

python - 在 Python 中导入 csv 时忽略 dtype 异常

arrays - 算法:查找数组中元素的最大子集