Python 中的 Round() 是否有替代方案?
Is there any alternative for Round() in Python?
当我使用 round() 将浮点值四舍五入到 2 位时,当小数位为零时,它只显示其中一位
例如。如果我四舍五入(12.00,2),结果就像 12.0,四舍五入到小数点后一位。
我希望结果保留 2 位小数,例如 12.00
如果python还有什么函数可以给我结果呢?
round
并不是给你这个结果的确切原因,从数学上讲 12.0
、12.00
和 12.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
当我使用 round() 将浮点值四舍五入到 2 位时,当小数位为零时,它只显示其中一位
例如。如果我四舍五入(12.00,2),结果就像 12.0,四舍五入到小数点后一位。
我希望结果保留 2 位小数,例如 12.00
如果python还有什么函数可以给我结果呢?
round
并不是给你这个结果的确切原因,从数学上讲 12.0
、12.00
和 12.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