如何将小数格式化为始终显示2个小数位?

373

我想显示:

49 显示为 49.00

和:

54.9 显示为 54.90

无论小数部分的长度如何,或者是否有任何小数位,我都希望以高效的方式显示具有 2 个小数位的 Decimal 值。目的是显示货币值。

例如,4898489.00


有关内置的 float 类型的类似问题,请参见限制浮点数精度到小数点后两位


我猜这可能意味着OP正在使用decimal.Decimal,并对十进制上下文的精度感到不满,因为它将精度限制为n位,例如“严格意义上的n位精度”(例如'123.456'变成Decimal('1.2E+2')),而不是“小数部分的n位”(对于Decimal('123.45'))...请参见我的答案,希望能对此有所帮助。;-) - Michał Marczyk
1
是的,它们是用于货币价值的。 - orokusaki
13个回答

4

这个解决方案与你可能已经见过的相同,但通过这种方式做更加清晰:

>>> num = 3.141592654

>>> print(f"数字:{num:.2f}")


1

展示最简单的方法的例子如下:

代码:

>>> points = 19.5 >>> total = 22 >>>'Correct answers: {:.2%}'.format(points/total) `

输出:正确答案:88.64%


-5

关于什么?

print round(20.2564567 , 2)    >>>>>>>        20.25


print round(20.2564567 , 4)    >>>>>>>        20.2564

人们投票反对这个代码,因为 print round(20,2) 会将 20 四舍五入到最接近的百分位数得到 20.00,然后打印出 20。round 改变了发送给 print 的参数值,但并没有按照 OP 的要求格式化 print 的输出。 - Bennett Brown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接