我对 Python 中舍入的工作原理有点困惑。
有人能解释一下为什么Python会这样吗?
Example:
>>> round(0.05,1) # this makes sense
0.1
>>> round(0.15,1) # this doesn't make sense! Why is the result not 0.2?
0.1
同样适用于:
>>> round(0.25,1) # this makes sense
0.3
>>> round(0.35,1) # in my opinion, should be 0.4 but evaluates to 0.3
0.3
Edit:所以一般来说,Python有可能是向下舍入而不是向上舍入。那么我是否可以理解,唯一可能发生的“异常”事情是Python向下舍入?或者它也可能由于存储方式而“异常”四舍五入? (我还没有发现Python在我期望它向下取整时向上取整的情况)
这实际上是设计使然。来自Python文档 https://docs.python.org/2/library/functions.html#round:
的行为round()
对于浮点数可能会令人惊讶:例如,round(2.675, 2)
给出 2.67 而不是预期的 2.68。这不是一个错误:这是因为大多数小数不能精确地表示为浮点数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)