You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何判断一个数是否在另一个数的1%范围内?

判断数值是否在另一数值的1%范围内的简便实现

你需要的是判断num_a是否处于num_b的±1%相对误差区间内,原函数仅计算百分比占比,无法直接完成判断。以下是两种简便实现方式:

方法一:基于相对误差(推荐,适配正负数值)

这种方式通过计算两个数的相对误差是否≤1%来判断,能正确处理num_b为负数的情况:

def is_within_one_percent(num_a, num_b):
    # 处理num_b为0的边界情况,可根据实际需求调整逻辑
    if num_b == 0:
        return num_a == 0  # 若num_a也为0则认为在范围内,否则返回False
    relative_error = abs(num_a - num_b) / abs(num_b)
    return relative_error <= 0.01

测试你的示例:

  • 当num_a=99.3,num_b=100时,相对误差为(100-99.3)/100=0.007,≤0.01,返回True,符合预期。
  • 若num_b=-100,num_a=-99.3,相对误差同样为0.007,返回True,逻辑正确。

方法二:基于区间判断(仅适用于正数场景)

如果确定num_b始终为正数,也可以直接计算区间范围进行判断:

def is_within_one_percent(num_a, num_b):
    lower = num_b * 0.99
    upper = num_b * 1.01
    return lower <= num_a <= upper

该方法逻辑直观,但当num_b为负数时,区间的上下限会颠倒,导致判断错误,因此仅适合正数场景。

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:15:08