math 库函数
使用 math.floor、ceil、sqrt、sin、cos、random、huge 和 pi。
math 库函数 是 CoddyKit 上的免费 Lua Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Lua Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Lua Academy 课程共包含 4 节课。
math 模块
math 模块提供数学常量和函数,包括 math.pi、math.huge、math.maxinteger 以及几十个函数。
取整函数
math.floor 向下取整,math.ceil 向上取整,math.tointeger 将浮点数转换为整数,无法转换时返回 nil。
print(math.floor(3.7)) -- 3
print(math.ceil(3.2)) -- 4
print(math.tointeger(4.0)) -- 4三角函数
这些函数的参数使用弧度。请使用 math.pi 将角度转换为弧度。
local deg = 45
local rad = deg * math.pi / 180
print(math.sin(rad)) -- ~0.707
print(math.cos(rad)) -- ~0.707
print(math.tan(rad)) -- ~1.0math.sqrt 和 math.abs
math.sqrt(x) 返回平方根;math.abs(x) 返回绝对值。
print(math.sqrt(144)) -- 12.0
print(math.abs(-42)) -- 42math.exp 和 math.log
指数函数和对数函数。math.log 接受可选的底数参数。
print(math.exp(1)) -- 2.718...
print(math.log(math.exp(1))) -- 1.0
print(math.log(100, 10)) -- 2.0math.min 和 math.max
返回一组数字中的最小值或最大值。可以接受多个参数。
print(math.min(3, 1, 4, 1, 5)) -- 1
print(math.max(3, 1, 4, 1, 5)) -- 5
print(math.min(table.unpack({7,2,9}))) -- 2math.random 和 math.randomseed
生成伪随机数。使用 os.time() 设定种子,可以生成不重复的序列。
math.randomseed(os.time())
print(math.random()) -- float in [0,1)
print(math.random(6)) -- integer in [1,6]
print(math.random(10, 20)) -- integer in [10,20]math.modf
math.modf(x) 将 x 的整数部分和小数部分作为两个独立的值返回。
local int, frac = math.modf(3.75)
print(int, frac) -- 3.0 0.75math.huge 和无穷大
math.huge 表示正无穷大。它适合用作查找最小值循环的初始值。
local min = math.huge
for _, v in ipairs({5, 2, 8, 1}) do
if v < min then min = v end
end
print(min) -- 1整数算术(Lua 5.3+)
Lua 5.3 引入了真正的整数。请使用 math.type(x) 区分整数和浮点数。
print(math.type(1)) -- integer
print(math.type(1.0)) -- float
print(math.maxinteger) -- 9223372036854775807math.fmod
math.fmod(x, y) 返回 x/y 的余数,其符号与 x 相同,这一点不同于 % 运算符。
print(math.fmod(-7, 3)) -- -1
print(-7 % 3) -- 2 (always non-negative in Lua)math 库问题
哪个函数会同时返回一个数字的整数部分和小数部分?
回顾:math 库
math 库涵盖取整、三角函数、指数函数、随机数、最小值/最大值以及整数算术。为了获得更符合实际的随机性,请始终使用 os.time() 为 math.random 设定种子。
常见问题解答
「math 库函数」课时是免费的吗?
是的 — 「math 库函数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Lua Academy 课程的其余内容,请升级到 CoddyKit PRO。 Lua Academy 课程共包含 4 节课。
「math 库函数」这节课中我会学到什么?
使用 math.floor、ceil、sqrt、sin、cos、random、huge 和 pi。 你通过在浏览器中直接运行的动手代码来练习 Lua Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Lua Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Lua Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「math 库函数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Lua Academy 课中编写并运行代码吗?
能。每节 Lua Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。