python - python2 和 python3 之间的舍入行为不同

标签 python python-3.x python-2.7 rounding

帮助 我目前正在使用一本书,但它似乎是错误的或什么的。 这是我输入的内容:

round(10)
10
>>> round(10.0)
10
>>> round(10.2)
10
>>> round(8.7)
9
>>> round(4.5, 1)
4.5
>>> round(4.5, 2)
4.5
>>> round(4.5, 3)
4.5
>>> round (4.5)
4
>>> round(4.5)
4

这就是书中所说的应该发生的事情:

round(10)
10
>>> round(10.0)
10.0
>>> round(10.2)
10.0
>>> round(8.7)
9.0
>>> round (4.5)
5

最佳答案

Python2.7

>>> round(10.0)
10.0
>>> round(10.0, 0)
10.0

Python3.4、3.5 和 3.6

>>> round(10.0)
10
>>> round(10.0, 0)
10.0
>>> 

两个要点:

  1. round 在 python3 中返回 int(如果可以),而在 python2 中返回 float(始终)。
  2. 阅读一本有关 python3 的书!

关于python - python2 和 python3 之间的舍入行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44684317/

相关文章:

python - Python 的选项类型注释/提示

python - 如何从 JSON 中提取循环 key ?

python - 获取具有可变序列长度的激活时出现 Tensorflow GRU 单元错误

python - 如何确定由网格单元组成的任意形状的角/顶点单元

python - GridSpec 轴调整大小

Python:如何改进归一化算法?

python - 使用 pypyodbc 对列名进行 SQL Server 编码

python - 计算大于当前行值但小于其他列值的连续行数

python - 模块未找到错误: No module named 'plotly'

python - Travis CI 与 mysql 和 django 返回 (1045, "Access denied for user ' root' @'localhost' (使用密码 : YES)")