Python打印限制到两位小数

时间:2019-01-04 17:00:43

标签: python

我想将数字打印在小数点后两位,我具有以下内容:

a= [ 0.1111113, 0.222222]
print '{0:.2f}, {0:.2f}'.format(a[0], a[1])
  

输出:0.11、0.11

但这是不对的,应该是0.11、0.22,这是不正确的!

这是怎么回事?

3 个答案:

答案 0 :(得分:7)

您正在引用第一个(第0个)参数来两次格式化,如下所示更改为第一个和第二个:

a = [0.1111113, 0.222222]
print '{0:.2f}, {1:.2f}'.format(a[0], a[1])

或跳过索引:

a = [0.1111113, 0.222222]
print '{:.2f}, {:.2f}'.format(a[0], a[1])

或将所有a传递为格式:

a = [0.1111113, 0.222222]
print '{0[0]:.2f}, {0[1]:.2f}'.format(a)

full docs for string formatting with examples

答案 1 :(得分:1)

你可以做

>>> B.m1()
3
>>> B.m2(6)
>>> B.x
3
>>> B.y
6
>>> import inspect
>>> print(inspect.signature(B.m2))
(n)
>>> print(inspect.signature(B.m1))
()

如果您想获得出色的性能,请转到> Python 3.4 然后,您可以执行以下操作:

a= [ 0.1111113, 0.222222]
print '{:.2f}, {:.2f}'.format(*a)

;)

答案 2 :(得分:1)

您还可以使用round()函数:

a= [ 0.1111113, 0.222222]
b= [round(i,2) for i in a]
print(b)
# output [0.11, 0.22]