値を確認するために print ステートメントを挿入して、変更額を計算する簡単なコードを書いています。
cost = float(raw_input('How much did your meal cost? > '))
payment = float(raw_input('How much did you pay? > '))
change = (payment - cost)
print change
if change < 0:
print 'You need to pay $%.2f more!' % (-change)
dollars, q, d, n, p = 0, 0, 0, 0, 0
change = float(change*100)
print change
if change> 100:
dollars = int(change/100)
change = change % 100
print change
if change >= 25:
q = int(change/25)
change = change % 25
print change
if change >= 10:
d = int(change/10)
change = change % 10
print change
if change >= 5:
n = int(change/5)
change = change % 5
print change
if change >= 1:
p = int(change/1)
else:
print "why doesn't this work?"
print p
print change
print 'you get %d dollars, %d quarters, %d dimes, %d nickels, and %d pennies!' % (dollars, q, d, n, p)
これは以下を返します:
あなたの食事はいくらかかりましたか。> 34.34
いくら払ったか?> 40
5.66
566.0
66.0
16.0
6.0
1.0
なぜこれが機能しないのですか?
0
1.0
ペニー計算の前後で変動=1.0になっているのがわかりますが、
if change >= 1
まだ false として読み取られ、else ステートメントに進みます。ここで何が起こっていますか?どうすれば修正できますか?