繁体   English   中英

在Python中精确到2个小数点

[英]Precision upto 2 decimal points in Python

print(round((8/4),2))给出2.0而不是2.00 如果我想精确到2个小数点并且不想在Python中使用print("{0:.2f}".format(8/4))怎么办?

round()是否可能?

使用decimal模块和quantize方法( doc ):

from decimal import Decimal

print((Decimal(8)/Decimal(4)).quantize(Decimal('1.00')))

印刷品:

2.00

print(round((8/4),2))给出2.0,而不是2.00。

实际上,它给出2,因为它可以由基础的基数2(二进制)算术精确表示。 重要的是要意识到,任何显示实际上都是一种错觉:您只是舍入了真实机器值的显示。

如果我想精确到2个小数点并且不想在Python中使用print(“ {0:.2f}”。format(8/4))怎么办?

那取决于你的意思。 您是否想要一个可以在1.995到2.005等之间的小数,在这种情况下,您可能会寻找结构化的数据包装程序,如小数模块,但是如果您只关心显示值而不是格式化,那是您的最佳选择。

round()是否可能?

舍入2的真实值可以得到2。您无法获得比2更精确的值2。

https://docs.python.org/3/tutorial/floatingpoint.html

您可以使用fstring代替格式:

a = 8 / 2
precision = 2
print(f"{a: .{precision}f}")

输出:

4.00

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM