use*_*ame 1 python floating-point rounding
例如,
a = 5 * 6.2
print (round(a, 2)
Run Code Online (Sandbox Code Playgroud)
输出为31.0.我原以为31.00.
b = 2.3 * 3.2
print (round(b, 3))
Run Code Online (Sandbox Code Playgroud)
输出为7.36.我原以为7.360.
您正在混淆舍入格式.舍入生成一个float
带有舍入值的新对象,它仍将以与任何其他浮点数相同的方式打印:
>>> print(31.00)
31.0
Run Code Online (Sandbox Code Playgroud)
如果需要生成具有特定小数位数的字符串,请使用该format()
函数:
>>> print(format(31.0, '.2f'))
31.00
Run Code Online (Sandbox Code Playgroud)
有关可用选项,请参阅格式规范迷你语言部分.
如果该值是较大字符串的一部分,则可以使用该str.format()
方法将值嵌入到字符串模板中,使用相同的格式规范:
>>> a = 5 * 6.2
>>> print('The value of "a" is {:.2f}'.format(a))
Run Code Online (Sandbox Code Playgroud)
Python总是在小数点后打印至少一位数,这样你就能分辨出整数和浮点数之间的区别.
该round()
函数仅将数字舍入到指定的小数位数.它无法控制打印方式.7.36和7.360是相同的数字,因此打印时间越短.
要控制打印,您可以使用格式.例如:
print(".3f" % b)
Run Code Online (Sandbox Code Playgroud)