在Python 2.x中,内置的^{
if two multiples are equally close, rounding is done away from 0 (so. for example, round(0.5) is 1.0 and round(-0.5) is -1.0)
在python3.x中,this has changed到更常见的:
if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0, and round(1.5) is 2).
在Python2.x中有没有一种简单的方法来实现这种行为?不幸的是,^{
显然,我可以编写一个新函数来产生所需的行为,但我更好奇的是,是否存在使用实际python3.x函数的解决方案,以避免增加不必要的复杂性和维护代码。在
这个回答已经阅读了最初的问题,答案是“不,我不能想出一些使用Py3原始代码的东西。”
但是对于想知道在Py2中复制Py3行为的代码是什么的人来说(包括int与float行为),下面是上面的}的int与float的区别。在
User
代码的改编,其中包括ndigits
和{除非您介意numpy依赖,^{} 可能会这样做:
Python 2中的Python 3回合
函数可以如下所示:
让我澄清一下
^{pr2}$bltinmodule.c
中的圆是什么所以圆实际上几乎什么也做不了。它取决于传递给它的对象。 这将导致
floatobject.c
函数static PyObject *double_round(double x, int ndigits)
我在上面的函数中使用了这些行的知识。在
Python 3中的Python 2 round
我想你需要写一个新函数。在
if语句处理
i + 0.5
和i + 1.5
被舍入到不同方向=偶数和减半的情况。在这种情况下,舍入是从零开始的。在您是否需要第二个参数取整
ndigits
的解决方案?在相关问题 更多 >
编程相关推荐