如何更正此舍入功能?
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1/10^prec
return uod
它引发:TypeError:^:'float'和'int'的不支持的操作数类型。
答案 0 :(得分:8)
^
并不代表您认为的含义。请改用**
。
From the Python documentation:
^
运算符产生其参数的按位XOR(异或),它必须是普通或长整数。
此外,正如 mgilson 所指出的,1/10
在Python 2.x中等于0
,因此您想要使用1.0/10
代替:
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1.0/10 ** prec
return uod