我正在使用以下代码(此问题已简化):
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
我该怎么做?
答案 0 :(得分:2)
使用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))
答案 1 :(得分:1)
print('The sum is={:.6f}:{:.6f}:{:.6f}'.format(*t4))
答案 2 :(得分:0)
t4.append("%.6f" % (float(num1)+float(num2)))
"%.6f" % anumber
表示将数字转换为f
个浮点数,然后在6
.
个数字格式化
答案 3 :(得分: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),