`/` 和 `//` 对于多个数字给出不同的结果

问题描述 投票:0回答:1

这个问题给我的算法实现带来了困难:

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

第二师也应该回来

-7.0
。我想这与浮点错误有关,你知道另一种方法来获得预期的结果吗?使用
numpy.floor(-19.9871/2.8553)
给出了预期的结果,但也许有更好的解决方案......

python
1个回答
-1
投票

此问题是因为运算符“//”在 Python 中向下舍入,对于您的情况,为 -无穷大,而“/”向上舍入。您可以使用 Python 库中已内置的 numpy.floor 或 math.floor 来代替。

© www.soinside.com 2019 - 2024. All rights reserved.