Skip to main content
 首页 » 编程设计

python之我的 Python 代码的输出说明

2025年05月04日9linjiqin

基本上,除了 0.93 之外,它几乎适用于我尝试过的所有情况。然后我在 while 循环中添加了“打印钱”以查看它在每个循环之后都在做什么,这就是发生的事情:

Enter an amount less than a dollar: 0.93 
0.68 
0.43 
0.18 
0.08 
0.03 
0.02 
0.01 
3.81639164715e-17 
-0.01 
Your change is 3 quarters 1 dimes 1 nickels 4 pennies 

谁能解释一下这到底是怎么回事?

money = input("Enter an amount less than a dollar: ") 
quarter = 0 
dime = 0 
nickel = 0 
penny = 0 
 
while money > 0.00: 
    if money >= 0.25: 
        quarter = quarter + 1 
        money = money - 0.25 
 
    elif money >= 0.10: 
        dime = dime+1 
        money = money - 0.10 
 
    elif money >= 0.05: 
        nickel = nickel + 1 
        money = money - 0.05 
 
    else: 
        penny = penny + 1 
        money = money - 0.01 
 
 
 
print "Your change is %d quarters %d dimes %d nickels %d pennies" % (quarter, dime, nickel, penny) 

请您参考如下方法:

float can't represent most decimal fractions exactly ,就像你不能用十进制 float 写出 1/3 的结果一样。

使用整数来计算美分,或者使用 decimal module .

顺便说一句,这与 Python 无关,而是与计算机通常进行 float 学运算的方式有关。