为何输入的小数数值被向下取整?如何实现精确小数计算?
问题解决:小数输入被向下取整的修复
问题根源在于你对输入值做了多余的整数转换:
weight = int(float(input('请输入包裹重量:')))
这里的int()会直接截断浮点数的小数部分,导致所有小数输入都被向下取整,比如1.5变成1,5.5变成5。
核心修复步骤
直接去掉外层的int()转换,让weight保留浮点数类型:
weight = float(input('请输入包裹重量:'))
额外代码优化(解决语法和逻辑问题)
你的代码还有两个小问题需要修正:
- 第二个条件判断应该用
elif替代if,避免重复判断逻辑 else块的print语句缺少缩进,会触发语法错误
修正后的完整代码:
weight = float(input('请输入包裹重量:')) # 运费计算 flat_rate = 20.00 if weight <= 2: price_per_pound = 1.50 price = weight * price_per_pound + flat_rate print(price) elif weight > 2 and weight <= 6: price_per_pound = 3.00 price = weight * price_per_pound + flat_rate print(price) else: print('输入无效')
测试验证:
- 输入1.5,计算结果为
1.5*1.5 + 20 = 22.25 - 输入5.5,计算结果为
5.5*3 + 20 = 36.5
均能正确保留小数进行计算。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

