如何计算具体的价格费用?

2024-09-30 01:20:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我以前写过一篇关于这个的帖子,但我觉得我的措辞/解释是错误的。我将向您展示代码,然后我将给出一个我正在尝试做的示例

amountPaid = float(input("Enter the amount you're paying:\n"))
taxPercentage = float(input("Enter the tax percentage:\n"))

taxPercentage = taxPercentage / 100
firstFee = (amountPaid * taxPercentage) + .30
newAmount = amountPaid - firstFee
secondFee = (newAmount * taxPercentage) + .30
total = secondFee + newAmount
print("{:.2f}".format(total))
while total < amountPaid:
  newAmount = newAmount + .01
print("The amount you should be paying is ${:.2f}".format(total))
print("The fee with that total would be ${:.2f}".format(secondFee))

(注意)上面的代码实际上目前不起作用,我相信它是while语句,但它给了您一个想法

很明显,我对编程还很陌生,所以如果您能给我一些初学者的建议,我将不胜感激

我想做的是计算一笔费用,使之等于一个精确的总数,如下所示:

  • 假设我付1美元。使用上述等式,该付款的费用将等于1.33美元
  • 因此,如果你从我们开始的1.00美元减去0.33美元的费用,我们将得到0.67美元
  • 但是,0.67美元的费用是0.32美元,也就是0.99美元,而不是1美元

我尽了最大的努力来解释这件事,但是如果你有任何问题,请问,这让我很困扰,我不能弄清楚这件事,哈哈


Tags: the代码youformatinputfloatamounttotal
1条回答
网友
1楼 · 发布于 2024-09-30 01:20:23

一个要点是while循环依赖于两个变量:amountPaidtotal。这意味着,如果这两个参数不变,while循环将永远循环,因此您必须确保它们在循环中被修改

您还可以很快看到,循环本身并不修改这两个选项中的任何一个,它只修改newAmount。这意味着循环将永远运行,或者根本不会运行,因此在这种情况下它是无用的

因此,您需要更改修改变量的位置。请注意,在编写时:

total = secondFee + newAmount

它不是一个始终为真的定义,而是一个赋值。这意味着修改secondFeenewAmount不会直接修改total,除非您重写同一行(请注意,这就是循环所做的,它“重写行”!)

回到您的代码:目前,只有这两个选项是可能的。快速查看代码后,您似乎打算将这两行代码放在while循环中:

while total < amountPaid:
    newAmount = newAmount + .01
    secondFee = (newAmount * taxPercentage) + .30
    total = secondFee + newAmount

我希望您能理解原因,并祝您今后的编程工作好运:)

相关问题 更多 >

    热门问题