1

如何更正此舍入功能?

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

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

4

1 回答 1

8

^并不意味着你认为它意味着什么。改为使用**

从 Python 文档

^运算符产生其参数的按位 XOR(异或),该参数必须是纯整数或长整数。

此外,正如mgilson 所指出的,在 Python 2.x1/10中将相等0,因此您想1.0/10改用:

def round_down(num, prec):
    uod = round(num, prec)
    if uod > num:
        return uod - 1.0/10 ** prec  
    return uod
于 2013-05-08T14:40:59.693 回答