Number(数字)
描述
Lua 中的number(数字)是一种双精度浮点数字(或简称double(双精度))。例如:
- 2
- 5.13745484
- -1874
在 Lua 当中,数字的范围可以从 -1.7 × 10308 到 1.7 × 10308(约 15 位数,正或负)。
有符号与无符号
数字的符号代表它是正数还是负数。有符号的数字可以是正数或负数,但没有符号的数字不能是负数。在 Lua 中,-0 与 0 是有区别的。
运算符
Lua 数学和关系 operators (运算符)可用于处理和比较数字。例如 math.sqrt() 和 math.exp() 的数学函数可以在 math(数学)库中找到,且为了进行位操作,bit32 库也已被逆向移植。
数字分类
在 MiniStudio Lua 中,以下数字类型没有技术上的区别。不过在文档中,数字分类用来表明 API 成员涉及哪种数字。
int
int 数字类型指的是没有小数部分的数字(整数),例如 0、60 或 -42。 当提供非整数时,预期整数的属性和函数可能会自动取整或报错。
在 Lua 中处理整数时,请注意以下事项:
数字的小数部分可以用 math.floor() 进行舍去。 你可以通过比较 math.floor(x) == x 来判断一个数字是否为整数。 要将一个数字向最近的整数取整(四舍五入),请用 math.floor(x + 0.5)。
float
float 数字类型指的是单精度(32 位)浮点数。此类型不如一般数字精确,但差距通常不会造成影响。
类型自省
你可以通过使用 type(x) 或 typeof(x) 来确定一个值是否为数字,当是数字时,两者都将返回字符串 number。
local testInt = 2
local testDecimal = 5.13745484
local testString = "Hello"
print(type(testInt))
print(type(testDecimal))
print(type(testString))
