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

Python代码调用math.floor后未对数值实现向下取整问题求助

问题根因

math.ceil()、math.floor() 不会修改传入的参数本身,只会返回取整后的新数值。你现有代码仅调用了函数但没有将返回结果赋值给healt变量,原始浮点值没有被覆盖,所以打印的始终是未取整的数值。

修复代码
import random
import math

difficolty = 3
healt = 50
potion_healt = random.randint(20,50)/3

healt = healt + potion_healt

if difficolty < 3:
   healt = math.ceil(healt)
else:
   healt = math.floor(healt)

print(f"You have {healt} ps!")
注意事项
  • Python中所有数值运算相关的内置、标准库函数基本都属于无副作用的纯函数,不会修改入参变量,调用后必须主动接收返回值才能拿到计算结果
  • 如果有类型转换需求,也可以在赋值时额外套int()做转换,避免取整后仍为浮点类型(比如math.floor(63.99)返回的是63.0,套int()后会得到整数63)

内容的提问来源于stack exchange,提问作者Cetriolino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:06:03