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

Python中/与//运算结果差异问题及解决方案咨询

Python浮点数与Decimal的取整逻辑困惑

浮点数整除的异常结果

执行以下代码时,得到了不符合预期的整除结果:

>>> -19.9871/2.8553
-7.0
>>> -19.9871//2.8553
-8.0

预期-19.9871//2.8553应返回-7.0,推测是浮点数精度误差导致。目前使用numpy.floor(-19.9871/2.8553)能得到预期结果,但希望找到更优的解决方案。

Decimal运算的取整矛盾

后续测试Decimal运算时,出现了取整方法的矛盾情况:

案例1:round得到正确结果

>>> decimal.Decimal(8.5659)/decimal.Decimal(2.8553)
Decimal('2.999999999999999533405376125')
>>> np.floor(decimal.Decimal(8.5659)/decimal.Decimal(2.8553))
2
>>> round(decimal.Decimal(8.5659)/decimal.Decimal(2.8553))
3 # *预期的//运算结果*

此案例中,round得到了符合预期的整除结果,而np.floor结果不符合。

案例2:floor得到正确结果

>>> decimal.Decimal(12.8489)/decimal.Decimal(2.8553)
Decimal('4.500017511294785017834689091')
>>> round(decimal.Decimal(12.8489)/decimal.Decimal(2.8553))
5
>>> np.floor(decimal.Decimal(12.8489)/decimal.Decimal(2.8553))
4 # *预期的//运算结果*

此案例中,np.floor得到了符合预期的整除结果,round结果不符合。

想请教如何统一处理这类取整问题,确保得到正确的整除结果?


内容的提问来源于stack exchange,提问作者Abel Gutiérrez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:17:09