为什么python中的round()函数会给出不同的结果?
我试图对浮点数进行四舍五入运算,但在python中,对于不同的浮点值,它会给出不同的结果。示例:-为什么python中的round()函数会给出不同的结果?,python,python-3.x,Python,Python 3.x,我试图对浮点数进行四舍五入运算,但在python中,对于不同的浮点值,它会给出不同的结果。示例:- >>> round(4.5) 4 及 >>> round(3.5) 4 正如您所看到的,结果是round(4.5)return4,而rount(3.5)return4。如何解决这个问题?我希望round(4.5)返回5。请帮帮我。谢谢请参阅 基本上它叫偶数圆。它将把x.5值舍入为偶数选择 这是。来自: 如果两个倍数相等接近,则舍入将朝偶数选择方向进行(例如,
>>> round(4.5)
4
及
>>> round(3.5)
4
正如您所看到的,结果是round(4.5)
return4
,而rount(3.5)
return4
。如何解决这个问题?我希望round(4.5)
返回5
。请帮帮我。谢谢请参阅
基本上它叫偶数圆。它将把x.5
值舍入为偶数选择
这是。来自:
如果两个倍数相等接近,则舍入将朝偶数选择方向进行(例如,舍入(0.5)和舍入(-0.5)均为0,舍入(1.5)均为2)
也就是说,Python3是这样做的
您可以通过以下方式进行“汇总”:
import math
def round_up(x):
return math.floor(x + 0.5)
银行家的取整,不是吗?@MadPhysician的确,这是它的另一个名字。这也是IEEE 754的默认设置,因此Python在这里表现得很好且兼容:不可复制的