Python 中的 Round() 是否有替代方案?

Is there any alternative for Round() in Python?

当我使用 round() 将浮点值四舍五入到 2 位时,当小数位为零时,它只显示其中一位

例如。如果我四舍五入(12.00,2),结果就像 12.0,四舍五入到小数点后一位。

我希望结果保留 2 位小数,例如 12.00

如果python还有什么函数可以给我结果呢?

round 并不是给你这个结果的确切原因,从数学上讲 12.012.0012.000 是相同的值。然后,要实现您想要的效果,您应该使用格式化。

如果您使用的是Python 3.6+

>>> f'{round(12.00,2):.2f}'
'12.00'

如果您使用的是 Python 的早期版本:

>>> '{number:.2f}'.format(number=round(12.00,2))
'12.00'

即使您可以使用 % 进行格式化,我也强烈反对遵循这种做法。处理格式化最好的方法是使用f-strings,如果不行,使用format方法。

您可以使用字符串格式。您可以指定小数位数,如果它需要截断数字,它会四舍五入。

以下格式保留两位小数。

num = 12.000
'%.2f' % num # => 12.00

num = 12.005
'%.2f' % num # => 12.01