2013-07-02 2 views
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 

?

+0

일에 대한 %의 .6f 수행 할 수 있습니다. – pepr

답변

2

사용 format :

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

.6 수단과 f "여섯 소수점 이하 자릿수로는"부동 소수점 수를 의미한다.

print('The sum is=' + ":".join(format(n, '.6f') for n in t4)) 
+0

'map()'대신 genex를 사용하는 것이 더 나을 것입니다. –

+0

'map ('{:. 6f}'. 형식, t4)'작동해야합니다. – Volatility

+0

@Ignacio : 추가되었습니다. – icktoofay

0
t4.append("%.6f" % (float(num1)+float(num2))) 
: 또한 발전기 식으로 map 전화를 대체 할 수

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

:

map보다는 str에 인수로 lambda를 사용, 기존의 코드에이를 넣으려면

"%.6f" % anumber은 숫자를 f으로 변환하고, 나는 누군가가 초보자 질문을 downvoted 왜 이유를 볼 수 없습니다로 .

1
print('The sum is={:.6f}:{:.6f}:{:.6f}'.format(*t4)) 
0

포맷 후 6 자리 N 형식은 최대 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),