【问题标题】:getting an answer to two decimal places using the int function使用 int 函数得到两位小数的答案
【发布时间】:2014-03-28 12:40:41
【问题描述】:

我是 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 位小数?

【问题讨论】:

    标签: python


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      改用浮点数:

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

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

      【讨论】:

        【解决方案3】:

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

        int(salesTax * 100 / 100.0)
        

        这样做:

        int(salesTax * 100) / 100.0
        

        【讨论】:

          【解决方案4】:

          这是一个小的更正。您可以使用 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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-01-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-12-28
            相关资源
            最近更新 更多