您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

整数除法与底商相比:为什么会有这种令人惊讶的结果?

整数除法与底商相比:为什么会有这种令人惊讶的结果?

因为1.1不能完全以二进制形式表示;近似值比1.1高一点-因此除法结果有点太小。

请尝试以下操作:

在Python 2下,在控制台上键入:

>>> 1.1
1.1000000000000001

在Python 3.1中,控制台将显示1.1,但是在内部,它仍然是相同的数字。

但:

>>> 11/1.1
10.0

正如gnibbler指出的那样,这是在浮子的可用精度范围内进行“内部舍入”的结果。正如MYYN在他的评论中指出的那样,为了尽可能地保留,//使用了一种不同的算法来计算楼层分割结果。math.floor()``a == (a//b)*b + a%b

Decimal如果需要此精度,请使用该类型。

其他 2022/1/1 18:41:12 有474人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶