在 python 中使用字符串格式舍入数字

Rounding a number while using string formatting in python

我想知道如何在使用字符串格式时对 python 中的数字进行舍入。在我的代码中,我使用 %r 而不是 %d,因为 %d 打印一个整数。使用 %r 时如何舍入数字?我希望我的数字四舍五入到小数点后两位。

def new_formula(value):
    payment = value * 9.00
    tips = payment/.29
    earned = payment + tips
    return payment, tips, earned

name = "Nate"
hours = 7.5

print "%s worked %r hours." % (name, hours)
print """He was paid %r dollars and made %r dollars in tips.
At the end of the day he earned %r dollars.""" % new_formula(hours)

使用函数回合:

print "%s worked %.2f hours." % (name, round(hours, 2))

参数2告诉函数使用小数点后2位。

好吧,您总是可以舍入 return 语句。因此,例如 round(payment, 2)。而且,我不确定您为什么使用 \r。 (你能告诉我为什么吗?)。您可以执行 %.2f 以使用小数点后两位。