加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python数值计算的关注点

发布时间:2020-12-20 11:35:17 所属栏目:Python 来源:网络整理
导读:我在 python中计算了以下2个值,得到了不同的结果!如果有人能够解释为什么会这样发生,那就太好了. (111-(111 2 * 17)* 3375)/( – 14)给出34947作为输出. (111 – (111 2 * 17)* 3375)/(14)* – 1给出34948作为输出. 这两个术语在数学上是等价的. 解决方法
我在 python中计算了以下2个值,得到了不同的结果!如果有人能够解释为什么会这样发生,那就太好了.

(111-(111 2 * 17)* 3375)/( – 14)给出34947作为输出.

(111 – (111 2 * 17)* 3375)/(14)* – 1给出34948作为输出.

这两个术语在数学上是等价的.

解决方法

这与舍入规则有关.考虑一个更简单的例子:

>>> -3/(-2)
1

>>> -3/2*-1
2

1.5向下舍入为1,-1.5向下舍入为-2.在某种程度上是一致的.

Doc reference:

Plain or long integer division yields an integer of the same type; the
result is that of mathematical division with the ‘floor’ function
applied to the result.

如果你想在Python 2.x中得到一个浮点结果,你需要一个显式转换(或者只是使用浮点文字),或者从__future__ import division开始.在Python 3.x中,除法总是产生一个浮点数(ref).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读