数字类输入 或 double ,代表一个 双精度 (64 位) 浮点数字。数字可以在 -1.7*10308 到 1.7*10308 (约有 15 位精度,正或负) 之间。
已签名和未签名
数字的符号表示它是否为正数或负数。例如,1 是正的,而 -1 是负的。在 Luau 中,数字 -0 相当于 0 .
print(0 == -0) --> 真实print(-0 > 1) --> 错误print(-0 < 1) --> 真实print(-0 > -1) --> 真实print(-0 < -1) --> false
数字分类
Luau 不区分整数和数字,但 API 参考有时会区分它们以便更具体地了解每个 API 的使用方式。
浮点
float 数字类型指的是带有十进位位场景的实数。在计算机科学条款中,它们是 单精度(32 位)漂浮点数,与双精度漂浮点数不如精确,但对大多数应用案例来说精确度足够,且需要更少的内存和存储。
int
integer 数字输入,或 int ,指的是 32 位整数,范围从 -2 31 到 2 31 - 1。属性和功能,如果期望整数,可以自动回合或提升非整数给它们时出现错误。
int64
int64 数字类型指向一个签名的 64 位整数,范围从 -2 63 到 2 63 - 1。这种类型的整数是 Roblox 网站使用身份证号的方法的共同特点。例如, Player.UserId 是一个 int64 ,而 MarketplaceService:PromptPurchase() 和 TeleportService:Teleport() 每个都期望 int64 对于ID参数。
符号
数字以最显著的数字先表示(大端)。在 Luau 中有多种方法来表示数字字符串:
操作
您可以使用逻辑和关联 运营符 来操作和比较数字。您还可以在 图书馆和 图书馆中使用数学函数,例如 和 ,以及在 图书馆中使用位元操作。
类型反馈
您可以使用 type(x) 或 typeof(x) 来确定值 x 是否是数字。两者都返回字符串 number 如果 x 是一个数字。
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> 数字print(type(testDecimal)) --> 数字print(type(testString)) --> 字符串print(typeof(testInt)) --> 数字print(typeof(testDecimal)) --> 数字print(typeof(testString)) --> string
圆功能
您可以使用 math.floor()、math.ceil() 或 math.modf() 来圆整数字。这些函数如果 Luau 可以将其视为整数,将返回整数结果。如果数字太大,Luau将其返回为浮点。
- 要确定数字 x 是否是整数,请使用 math.floor(x) == x 。
- 要将数字向下回合,请使用 math.floor() 。
- 要将数字四舍五入,请使用 math.ceil()。
- 要将数字向零轮到,请使用 math.modf() 。它还返回轮到的数字的分数差作为第二个结果。
print(math.floor(3.3)) --> 3print(math.floor(-3.3)) --> -4print(math.ceil(3.3)) --> 4print(math.ceil(-3.3)) --> -3print(math.modf(3.3)) --> 3 0.2999999999999998print(math.modf(-3.3)) --> -3 -0.2999999999999998