如何检查 2 个数字是否等于 Python 中的特定比率?

时间:2021-02-20 15:45:37

标签: python python-3.x

例如:我想知道 5 和 500 的比例是否为 1:100,我还想知道如何查看它们大致是否相同比例与否,我该怎么做??

4 个答案:

答案 0 :(得分:1)

如果您需要知道 a/bc/d 的比率是否大致相同,那么(仅在 Python 3 中)您可以执行 math.abs(a/b - c/d) < margin。正数 margin 越小,表达式返回 True 的比率必须越接近。 margin = 1/100 将在一个百分点内。

答案 1 :(得分:0)

您可以使用 fractions 模块进行精确比较:

>>> from fractions import Fraction

>>> Fraction('5/500') == Fraction('1/100')
True

答案 2 :(得分:0)

您可以检查叉积之间的差值是否小于两个分母中的较高者:

def sameRatio(a,b,c,d): return abs(a*d-b*c)<max(b,d)

输出:

>>> sameRatio(5,500,1,100)     # True
>>> sameRatio(9,500,1,100)     # True
>>> sameRatio(9,500,2,100)     # True
>>> sameRatio(10,500,1,100)    # False
>>> sameRatio(10,500,2,100)    # True
>>> sameRatio(1,500,1,100)     # True
>>> sameRatio(0,500,1,100)     # False

答案 3 :(得分:0)

您还可以利用 as_integer_ratiofloat 方法。

x = 5/500
y = 1/100
x.as_integer_ratio() == y.as_integer_ratio()
相关问题