0

我正在使用以下代码(针对此问题进行了简化):

t1=['1.99','2','133.37']
t2=['4.98','5','11116.98']
t3=list(zip(t1,t2))
t4=[]
for num1,num2 in t3:
  t4.append(float(num1)+float(num2))
print('The sum is='+ ":".join(map(str,t4)))
# output is -> The sum is=6.970000000000001:7.0:11250.35

但我希望输出如下:

The sum is=6.970000:7.000000:11250.350000
# i.e. six digits ONLY after decimal point

我怎么做?

4

4 回答 4

2

使用format

>>> format(5.2, '.6f')
'5.200000'

表示“.6到小数点后六位”,f表示浮点数。

要将其放入现有代码中,请使用 alambda作为参数map而不是str

print('The sum is=' + ":".join(map(lambda n: format(n, '.6f'), t4)))

map您还可以用生成器表达式替换您的调用:

print('The sum is=' + ":".join(format(n, '.6f') for n in t4))
于 2013-07-02T04:15:23.850 回答
1
print('The sum is={:.6f}:{:.6f}:{:.6f}'.format(*t4))
于 2013-07-02T04:18:33.343 回答
0
t4.append("%.6f" % (float(num1)+float(num2)))

"%.6f" % anumber表示将一个数字转换为一个f浮点数,然后6在后面用数字格式化.

于 2013-07-02T04:16:38.027 回答
0

可以使用 %.6f 进行格式化,最多保留 6 位小数

t1=['1.99','2','133.37']
t2=['4.98','5','11116.98']
t3=list(zip(t1,t2))
t4=[]
print('The sum is='+ ":"),
for num1,num2 in t3:
    each_sum = float(num1)+float(num2)
    print(":%.6f"%each_sum),
于 2013-07-02T04:28:59.183 回答