print(round((8/4),2))
给出2.0
而不是2.00
。如果我希望精度达到2个小数点并且不想在Python中使用print("{0:.2f}".format(8/4))
round()
有可能吗?
答案 0 :(得分:1)
使用decimal
模块和quantize
方法(doc):
from decimal import Decimal
print((Decimal(8)/Decimal(4)).quantize(Decimal('1.00')))
打印:
2.00
答案 1 :(得分:1)
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的精确值。
答案 2 :(得分:0)
您可以使用fstring
代替格式:
a = 8 / 2
precision = 2
print(f"{a: .{precision}f}")
输出:
4.00