数字

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

数字类输入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 中有多种方法来表示数字字符串:

  • 十进制 (基础-10) — 使用单个可选十进制点写数字的位数通常使用 0–9 位数字,例如 71.25-22.5
  • 科学记号 — 写一个带有十进制数字后面的 ee+ 整数,然后将十进制数字提升到 10 的倍数。例实例, 12e3 是 12 × 10^3 (12,000)。
  • 十六进制 (基础-16) — 开始数字以 0x 后跟随数字 0–9 或 A–F (大写忽略)。例如, 0xF 是 15 和 0x3FC 是 1020。
  • 二进制 (基础-2) — 开始数字以 0b 后跟随 0 或 1,例如 0b1100 (12 在十进制格式)。

操作

您可以使用逻辑和关联 运营符 来操作和比较数字。您还可以在 图书馆和 图书馆中使用数学函数,例如 和 ,以及在 图书馆中使用位元操作。

类型反馈

您可以使用 type(x)typeof(x) 来确定值 x 是否是数字。两者都返回字符串 number 如果 x 是一个数字。


local testInt = 5
local testDecimal = 9.12761656
local 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)) --> 3
print(math.floor(-3.3)) --> -4
print(math.ceil(3.3)) --> 4
print(math.ceil(-3.3)) --> -3
print(math.modf(3.3)) --> 3 0.2999999999999998
print(math.modf(-3.3)) --> -3 -0.2999999999999998