整数与浮点数
了解 Lua 如何表示数字。
整数与浮点数 是 CoddyKit 上的免费 Lua Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Lua Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Lua Academy 课程共包含 4 节课。
Lua 中的数字
在 Lua 中,number 类型可以保存各种数值。您可以使用数字进行计数、测量数值和数学运算。
从 Lua 5.3 开始,数字分为两种形式:整数(没有小数部分的数)和浮点数(带小数点的数)。
让我们先打印几个数字。
print(10)
print(3.14)什么是整数
整数是没有小数部分的完整数字,例如 0、42 或 -7。
当您写下一个不带小数点的数字时,Lua 会将其视为整数。
5是整数-100是整数
local apples = 5
print(apples)什么是浮点数
浮点数可以表示带小数的数值,例如 3.14 或 0.5。
您写下的任何带小数点的数字都是浮点数,即使是 2.0 也是如此。
浮点数可以保存测量值和除法结果。
local price = 2.5
print(price)检查子类型
整数和浮点数共用 "number" 这个类型名称。要查看某个值属于哪种子类型,请使用 math.type()。
如果值是整数,它会返回字符串 "integer";如果是浮点数,则返回 "float";如果值不是数字,则返回 nil。
print(math.type(10))
print(math.type(3.14))type() 与 math.type() 的区别
type() 函数会告诉您值的通用类型。对于任何数字,它都会返回 "number"。
math.type() 函数会进一步区分整数和浮点数。请根据任务选择合适的工具。
print(type(7))
print(math.type(7))除法始终生成浮点数
普通除法运算符 / 始终生成浮点数,即使两个数字能够整除。
因此,10 / 2 得到的是 5.0,而不是 5。请注意输出中的 .0。
print(10 / 2)
print(math.type(10 / 2))向下取整除法
如果需要得到整数结果,请使用向下取整除法运算符 //。它会进行除法,并向负无穷方向取整。
如果两个操作数都是整数,结果也是整数。
print(7 // 2)
print(math.type(7 // 2))浮点数也可以表示整数值
浮点数也可以保存整数值。4.0 与 4 的数值相等,但其子类型仍然是 float。
Lua 认为 4 == 4.0 为真,因为它们具有相同的数值。
print(4 == 4.0)
print(math.type(4.0))将浮点数转换为整数
您可以使用 math.tointeger() 将浮点数转换为整数。如果浮点数没有小数部分,它会返回对应的整数;否则返回 nil。
当某个 API 需要真正的整数时,这会很有用。
print(math.tointeger(8.0))
print(math.tointeger(8.5))科学计数法
Lua 允许您使用带有 e 的科学计数法来表示非常大或非常小的浮点数。
1e3 表示 1 times 10 to the power 3,也就是 1000.0。结果始终是浮点数。
print(1e3)
print(2.5e-2)整数范围
Lua 整数以 64 位存储,因此其范围虽然非常大,但仍然有限。常量 math.maxinteger 和 math.mininteger 显示了这个范围的上下界。
浮点数可以表示更大的数量级,但对于较大的整数值会失去精确度。
print(math.maxinteger)
print(math.mininteger)快速检查
测试您对整数和浮点数的学习成果。
回顾
您已经了解到,Lua 数字分为两种子类型:整数(完整数字)和浮点数(小数)。
使用 math.type() 区分它们;/ 始终生成浮点数,而 // 可以保持结果为整数。math.tointeger() 会在可能时进行转换。
接下来,您将深入学习算术运算符。
常见问题解答
「整数与浮点数」课时是免费的吗?
是的 — 「整数与浮点数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Lua Academy 课程的其余内容,请升级到 CoddyKit PRO。 Lua Academy 课程共包含 4 节课。
「整数与浮点数」这节课中我会学到什么?
了解 Lua 如何表示数字。 你通过在浏览器中直接运行的动手代码来练习 Lua Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Lua Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Lua Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「整数与浮点数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Lua Academy 课中编写并运行代码吗?
能。每节 Lua Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。