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))