我该如何纠正这个舍入函数?我该如何纠正这个舍入函数?
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1/10^prec
return uod
它提出:类型错误:不支持的操作数类型(一个或多个),用于^: '浮动' 和 'INT'。
我该如何纠正这个舍入函数?我该如何纠正这个舍入函数?
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1/10^prec
return uod
它提出:类型错误:不支持的操作数类型(一个或多个),用于^: '浮动' 和 'INT'。
^
并不意味着你的想法。改为使用**
。
From the Python documentation:
The
^
operator yields the bitwise XOR (exclusive OR) of its arguments, which must be plain or long integers.
此外,作为mgilson指出,1/10
将等于0
在Python 2.x中,所以要使用1.0/10
代替:
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1.0/10 ** prec
return uod
还有一个小问题,在python2.x中,'1/10'将始终为'0' – mgilson 2013-05-08 14:44:21
感谢您的支持,我将使用1./10,不过我使用的是Python 3。 – mistermarko 2013-05-08 14:56:56
给我们一个功能齐全例如,包括您如何调用函数以及您传递的参数。当然,你的特定问题只是当你指'**'时你正在尝试使用'^'。 – 2013-05-08 14:41:03
,正如@mgilson指出的那样,使用“1./10.''使得python使用浮点数而不是整数更安全(在这种情况下结果将是”0“) – Schorsch 2013-05-08 14:47:47
做出校正print(round_down(8.4789,2))根据需要给出8.47。我只是认为问题更加深刻。一定要小心这些假设! – mistermarko 2013-05-08 14:52:50