【问题标题】:Rounding off a float value without decimal points in python 2在python 2中舍入没有小数点的浮点值
【发布时间】:2019-04-29 18:05:27
【问题描述】:

问题是在使用 Python 2 对百分比值求和后对结果值进行四舍五入,不带任何小数。提供 3 个输入

输入1(餐费):10.25

输入 2(小费百分比):17

输入 3(税率百分比):5

我必须计算小费金额和税金金额并将结果与​​餐费相加。

我试过下面的代码:

defsolve(meal_cost, tip_percent, tax_percent):

 tip_amt = (meal_cost * tip_percent)/100
 tax_amt =(meal_cost * tax_percent)/100
 total_bill = (meal_cost + tip_amt + tax_amt)
 print int (total_bill)

如果 name == 'ma​​in':

meal_cost = float(raw_input())

tip_percent = int(raw_input())

tax_percent = int(raw_input())

solve(meal_cost, tip_percent, tax_percent)

正确答案是 13。但上面的代码给出了 12。

请指导我通过解决方案获得预期结果。 提前致谢

【问题讨论】:

    标签: python-2.7 floating-point


    【解决方案1】:

    你应该使用四舍五入。

    tip_amt = meal_cost * tip_percent/100
    tax_amt =meal_cost * tax_percent/100
    total_bill = meal_cost + tip_amt + tax_amt
    print round(total_bill)
    

    【讨论】:

    • 感谢 Manoj 的回复。我也试了一圈。但它给出的输出只有一位小数。 (13.0)
    • 将值转换为int
    • 是的..这对 Manoj 有效。将四舍五入的值转换为整数会给出不带小数的预期值。非常感谢!!!
    【解决方案2】:

    将四舍五入的总和值转换为整数给出不带小数的预期值。

    def solve(meal_cost, tip_percent, tax_percent):
         tip_amt = (meal_cost * tip_percent)/100
         tax_amt =(meal_cost * tax_percent)/100
         total_bill = (meal_cost + tip_amt + tax_amt)
         round_total = round(total_bill)
         return int(round_total)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多