如何更正此舍入功能?

时间:2013-05-08 14:38:46

标签: python

如何更正此舍入功能?

def round_down(num, prec):
    uod = round(num, prec)
    if uod > num:
        return uod - 1/10^prec  
    return uod

它引发:TypeError:^:'float'和'int'的不支持的操作数类型。

1 个答案:

答案 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