使用int函数得到两个小数位的答案

时间:2014-03-28 04:05:16

标签: python

我是蟒蛇新手,我的课程只有一两个星期。这是我写的:

#prompt user for input
purchaseAmount = eval(input("please enter Purchase Amount: "))
# compute sales tax
salesTax = purchaseAmount * 0.06
# display sales tax to two decimal points
print("sales tax is", int(salesTax * 100 / 100.0))

这就是它的回报:

  
    
      

请输入购买金额:197.55       销售税是11

    
  

我的文字建议我应该得到答案11.85。

在我的回答中,我应该更改以获得2位小数?

4 个答案:

答案 0 :(得分:1)

您应该使用string formatting mini-language

>>> salesTax = 22.2
>>> print("sales tax is %0.2f" % salesTax)
sales tax is 22.20

或者使用较新的格式方法

>>> salesTax = 22.256
>>> print("sales tax is {:.2f}".format(salesTax))
sales tax is 22.26

答案 1 :(得分:0)

使用float代替:

print("sales tax is", round(float(salesTax * 100 / 100.0),2))

这会将值打印到2小数位,为11.85

答案 2 :(得分:0)

你正在接受整个事情的int,这将永远是一个整数。您需要先取int然后int的结果除以100.所以不要这样:

int(salesTax * 100 / 100.0)

这样做:

int(salesTax * 100) / 100.0

答案 3 :(得分:0)

这是一个小小的修正。您可以使用float来获得小数点的确切答案。你将失去int的精确度。

purchaseAmount = eval(input("please enter Purchase Amount: "))
salesTax = purchaseAmount * 0.06
# get salesTax in floating point number
salesTax = float(salesTax * 100 / 100.0)
print salesTax
-> 11.853