如何改进税务计算器中浮动输出的格式?

时间:2016-09-25 04:24:19

标签: python python-2.7 calculator number-formatting

我写这么多没有任何问题,但输出数字有点不稳定。有时我会得到像83.78812这样的东西,而我宁愿将其四舍五入到83.79。

以下是代码本身:

#This is a simple tax calculator based on Missouri's tax rate.

while True:
tax = 0.076
cost = float(raw_input("How much does the item cost? $"))
taxAmount = tax * cost
final = taxAmount + cost
if cost > 0:
    print "Taxes are $" + str(taxAmount) + "."
    print "The total cost is $" + str(final) + "."
else:
    print 'Not a valid number. Please try again.'

我看到有人提到我应该使用int而不是浮点数,但我的税率超过小数点后的三个字符。此外,键入一个字符串会导致程序崩溃的错误,但我宁愿它只是给出一条错误消息并循环回到开头。我不知道如何解决这些问题。

2 个答案:

答案 0 :(得分:1)

  

"输入一个字符串会导致错误导致程序崩溃,但我只是简单地给出一条错误消息并循环回到开头。"

要执行此操作,您可以使用带有try & catch的while循环,这将继续提示项目成本,直到获得适当的值

使用round()方法对您的值进行舍入。它需要两个参数,第一个是值,第二个是向上舍入的位置。

使用占位符%.2f(小数点后2位数)使用python字符串格式设置结果格式

tax = 0.076
cost = 0
parsed = False
while not parsed:
    try:
        cost = float(raw_input("How much does the item cost? $"))    
        parsed = True
    except ValueError:
        print 'Invalid value!'
taxAmount = tax * cost
final = taxAmount + cost
if cost > 0:
    print "Taxes are $%.2f." % round(taxAmount, 2)
    print "The total cost is $%.2f." % round(final, 2)
else:
    print 'Not a valid number. Please try again.'

答案 1 :(得分:0)

您应该使用 round

round(final,2)