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

Python使用/运算符做除法时如何正确判断整数结果且不做舍入

修复方法

别绕弯做除法再判断类型,/返回浮点数、//截断的问题本质是你选的实现思路不对。
判断两个数相除是不是整数,最稳妥的方式是用取模运算%:只要ans % k == 0,就说明ans除以k没有余数,结果必然是整数,全程不涉及浮点数运算,根本不会出现类型不对、数值被截断的问题。
修复后的完整代码如下:

for i in range(len(nums)):
    ans = 0   
    ans += nums[i]
    for j in range(i+1, len(nums)):
        ans += nums[j]
        if ans % k == 0:
            return True
return False

补充说明

  • 如果你就是想先拿到除法结果再判断,可以对浮点数结果调用.is_integer()方法,示例写法:
    realans = ans / k
    if realans.is_integer():
        return True
    
    这个方法可以正确识别7.0是整数值、7.3不是整数,但浮点数存在固有精度问题,数值极大的时候可能出现误判,不推荐作为首选方案。
  • 原代码中realans = 0属于冗余赋值,每次进循环给它赋0之后马上会被后续计算结果覆盖,没有实际逻辑作用,可以直接删掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:12:21