我如何证明Python2中的“round”函数?

2024-09-28 20:59:51 发布

您现在位置:Python中文网/ 问答频道 /正文

当从将来导入round时,它的行为与Python3round函数不同。具体来说,它不支持负数舍入。在

在Python3中:

>>> round(4781, -2)
4800

在Python2中:

^{pr2}$

可能的解决方案包括负舍入的错误处理,编写自己的round函数,等等。应该如何处理?(含蓄地说,我要求的是最佳实践,大多数是Python式的,为社区所接受,等等)


Tags: 函数解决方案社区python3python2round负数pr2
1条回答
网友
1楼 · 发布于 2024-09-28 20:59:51

我本来打算建议您自定义函数的想法,这样您就可以确保它总是做您想要的,但这似乎是一个特殊的(奇怪的)情况,如果我不使用future.builtin.round()我会得到

Python 3.6:

>>> round(4781, -2)
4800

和Python 2.7:

^{pr2}$

似乎只是future.builtins被破坏了;在这种情况下,应该避免使用future.builtins.round()函数。注意,py3round()返回一个整数,而py2round()返回一个浮点数,但这似乎是两个stock实现之间唯一的区别(对于简单的取整操作,如给定的示例)。在

相关问题 更多 >