例如,
a = 5 * 6.2
print (round(a, 2)
输出为31.0。我原以为31.00。
b = 2.3 * 3.2
print (round(b, 3))
输出为7.36。我原以为7.360。
答案 0 :(得分:9)
您对格式化的舍入感到困惑。舍入生成一个带有舍入值的新float
对象,它仍将以与任何其他浮点数相同的方式打印:
>>> print(31.00)
31.0
如果您需要生成具有特定小数位数的字符串,请使用format()
function:
>>> print(format(31.0, '.2f'))
31.00
请参阅Format Specification Mini-Language部分了解您可以使用的选项。
如果值是较大字符串的一部分,您可以使用str.format()
method将值嵌入到字符串模板中,使用相同的格式规范:
>>> a = 5 * 6.2
>>> print('The value of "a" is {:.2f}'.format(a))
答案 1 :(得分:6)
Python始终在小数点后打印至少一位数,这样就可以区分整数和浮点数。
round()
函数仅将数字四舍五入到指定的小数位数。它无法控制打印方式。 7.36和7.360的编号相同,因此打印的编号较短。
要控制打印,您可以使用格式化。例如:
print(".3f" % b)
答案 2 :(得分:5)
Python会舍入到小数点后3位。这是印刷削减额外的零。尝试类似print("%.3f" % number)