0Pricing
Lua Academy · 课时

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.0

math.sqrt 和 math.abs

math.sqrt(x) 返回平方根;math.abs(x) 返回绝对值。

print(math.sqrt(144))  -- 12.0
print(math.abs(-42))   -- 42

math.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.0

math.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})))  -- 2

math.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.75

math.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) -- 9223372036854775807

math.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 反馈 — 无需本地设置。

此课程中的所有课时

  1. math 库函数
  2. table 库函数
  3. os 和 io 库
  4. debug 库
← 返回 Lua Academy