You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何输入的小数数值被向下取整?如何实现精确小数计算?

问题解决:小数输入被向下取整的修复

问题根源在于你对输入值做了多余的整数转换:

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:06:19