python 中解决round函数小bug的函数

寵の児 提交于 2019-12-21 13:35:42

我在用 python的 round函数中发现它在有些情况下实际上并没有执行四舍五入,而是五舍六入。
例如:
round(0.1555,3)
Out[4]: 0.155
round(0.955,2)
Out[14]: 0.95
而如果小数比需要保留的位数多,则不会有类似的问题,例如:
round(0.1555,2)
Out[10]: 0.16
这个明显是有问题的。为此我自己写了一个小函数来解决round函数的这个问题。

定义一个新的函数furound

这个函数的思路很简单,如果输入的小数比要保留的位数多一位并且最后一位是5,那么就+1让它变成6。
用新函数的运行结果如下:
furound(0.1555,3)
Out[11]: 0.156
furound(0.955,2)
Out[15]: 0.96
问题得到解决。
如果大家有更好的方法,欢迎讨论

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!