如何更正此舍入功能?

mis*_*rko 1 python

如何更正此舍入功能?

def round_down(num, prec):
    uod = round(num, prec)
    if uod > num:
        return uod - 1/10^prec  
    return uod
Run Code Online (Sandbox Code Playgroud)

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

Ell*_*lle 8

^并不意味着你认为它意味着什么.请**改用.

从Python文档:

^操作者产生的它的参数,它必须是普通的或长整数按位XOR(异或).

此外,作为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
Run Code Online (Sandbox Code Playgroud)