Python打印发行

2024-04-29 03:52:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我该怎么做?你知道吗


Tags: the代码inforiszipfloatlist
3条回答

使用format

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

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

要将其放入现有代码中,请使用lambda作为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))
print('The sum is={:.6f}:{:.6f}:{:.6f}'.format(*t4))
t4.append("%.6f" % (float(num1)+float(num2)))

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

相关问题 更多 >