2014-10-09 5 views
-1

값을 변경하는 변수를 변환하려고합니다. 그러나 일반적으로 값은 소수점 이하 1 자리로 변경됩니다. 0.5. 이 변수를 0.50로 변경하려고합니다.float 변수를 문자열로 변환합니다.

while topup == 2: 
    credit = credit + 0.5 
    credit = str(credit) 
    credit = '%.2f' % credit 
    print("You now have this much credit £", credit) 
    vending(credit) 
+0

나는 그것이 오류가 아닙니다. 어떤 버전의 파이썬을 사용하고 있습니까? – Kevin

+0

실제로 파이썬 3에서는 '% .2f'% credit' 형식 오류 : TypeError : a float is required'이고 파이썬 2에서는'TypeError : float argument required, str'가 필요하지 않습니다. –

+0

@ Kevin 필자는 Python 3.4를 사용하고 있습니다 – NoobProgrammer

답변

1
while topup == 2: 
    credit = float(credit) + 0.5 
    credit = '%.2f' % credit 
    print("You now have this much credit £", credit) 
    vending(credit) 

문제가 당신이 문자열

"%0.2f"%"3.45" # raises error 

에게 형식을 떠 수 없다 :이 코드를 사용하고 있지만이 프로그램을 실행할 때 다음 TypeError: Can't convert 'float' object to str implicitly

를 말한다 나의 코드 대신 숫자가 필요합니다.

"%0.2f"%3.45 # 0k 
"%0.2f"%5 # also ok 
전화 할 때3210

그렇게 str(credit) 당신이 원하는 당신이 일반적으로

credit = 1234.3 
print("You Have : £%0.2f"%credit) 

를 인쇄 할 때

문득 당신이 정말로에만이 작업을 수행해야한다 (부수적으로도 문자열로 다시 신용 캐스트 것을) 바로 아래의 형식 문자열을 나누기 귀하의 신용은 수학과 함께 할 수 있도록 숫자 형식이되어야합니다.

+0

어쨌든 내가 str (신용)을 사용하지 않음으로써 다른 방법으로 내 문제를 해결할 수 있습니까? – NoobProgrammer

+1

'str (credit)'을 사용할 충분한 이유가 없습니다. –

관련 문제