例如:我想知道 5 和 500 的比例是否为 1:100,我还想知道如何查看它们大致是否相同比例与否,我该怎么做??
答案 0 :(得分:1)
如果您需要知道 a/b
和 c/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_ratio
的 float
方法。
x = 5/500
y = 1/100
x.as_integer_ratio() == y.as_integer_ratio()