如何打印出不超过两位十进制数字的精度,例如 5.32 而不是 5.32436675?在python中有没有关于这个的关键字。
问问题
149 次
5 回答
5
尝试:
a = 5.32436675
print("%.2f" % a)
记住这是四舍五入。
如果您只想截断使用此帖子中的此方法。
def trunc(f, n):
'''Truncates/pads a float f to n decimal places without rounding'''
slen = len('%.*f' % (n, f))
return str(f)[:slen]
print(trunc(a, 2))
于 2013-11-01T17:36:56.593 回答
1
您想四舍五入到 2 个位置,如下所示:
round(number, 2)
例子:
round(5.32436675, 2)
输出:
5.32
这比浮动实现(截断解决方案)更可取,因为四舍五入意味着数字仍然大部分准确。你不想在应该5.319
的时候被切断!5.31
5.32
快乐编码!
于 2013-11-01T17:37:33.147 回答
0
根据字符串格式规范:
>>> "{0:.2f}".format(5.32436675)
5.32
于 2013-11-01T17:45:15.633 回答
0
您可以使用:
n = 23.232323
print "%.2f" % n
这里的“.2”表示小数点后两位。
于 2013-11-01T17:38:15.287 回答
0
% 格式有点老了。新方式:
print('{:.2f}'.format(5/9))
于 2013-11-01T17:53:20.220 回答