Python中精度高达2个小数点

Python中精度高达2个小数点,python,python-3.x,Python,Python 3.x,打印(圆形((8/4),2))给出2.0而不是2.00。如果我想要精度高达2个小数点,并且不想在Python中使用print(“{0:.2f}.format(8/4)),该怎么办 是否可以使用round()?您可以使用fstring而不是格式: a = 8 / 2 precision = 2 print(f"{a: .{precision}f}") 输出: 4.00 使用十进制模块和量化方法(): 印刷品: 2.00 打印(圆形((8/4),2))给出2.0,而不是2.00 实际上它给出了

打印(圆形((8/4),2))
给出
2.0
而不是
2.00
。如果我想要精度高达2个小数点,并且不想在Python中使用
print(“{0:.2f}.format(8/4))
,该怎么办


是否可以使用
round()

您可以使用
fstring
而不是格式:

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

4.00

使用
十进制
模块和
量化
方法():

印刷品:

2.00
打印(圆形((8/4),2))给出2.0,而不是2.00

实际上它给出了2,因为它可以用底层的base 2(二进制)算法精确地表示。重要的是要认识到,从真实意义上讲,任何显示都是一种错觉:您只是在对真实机器值的显示进行舍入

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

那要看你的意思了。您是否希望小数点可以在1.995到2.005之间,等等。在这种情况下,您可能需要像decimal模块一样的结构化数据包装器,但如果您只关心显示值,那么格式化是一种方法

可以使用round()吗

将2的真实值四舍五入得到2。您无法获得比2更接近2的精确值

这在文档中进行了讨论
2.00