我对Python的四舍五入有点困惑。
有人可以解释为什么Python会这样吗?
例子:
>>> 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
编辑:因此,一般而言,Python有可能舍入而不是舍入。因此,我是否理解唯一可能发生的“异常”事件就是Python舍入?还是由于存储方式的原因,它也可能会“异常”地四舍五入吗?(我没有发现我期望将其舍入的情况下将Python舍入的情况)
这实际上是设计使然。从Pythons文档中:
round()
for float的行为可能令人惊讶:例如,round(2.675, 2)
给出2.67而不是预期的2.68。这不是错误:这是由于大多数十进制小数不能完全表示为浮点数的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句