数字

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

数字数据类型,或称double,表示 双精度(64位)浮点数。数字的范围从 -1.7 * 10308 到 1.7 * 10308(大约 15 位有效数字,无论是正数还是负数)。

有符号和无符号

数字的符号表示它是正数还是负数。例如,1 是正数,-1 是负数。在 Luau 中,数字 -0 等价于 0


print(0 == -0) --> true
print(-0 > 1) --> false
print(-0 < 1) --> true
print(-0 > -1) --> true
print(-0 < -1) --> false

数字分类

Luau 不区分整数和数字,但 API 参考有时会区分它们,以更具体地说明如何使用每个 API。

float

float 数字类型指的是带小数点的实数。在计算机科学术语中,它们是 单精度(32位)浮点数,这种精度不如双精度浮点数,但对大多数用例来说足够精确,并且占用的内存和存储较少。

int

integer 数字类型,或称 int,指的是 32 位整数,其范围从 -231 到 231 - 1。期望整数的属性和函数在您分配或传递非整数时可能会自动四舍五入或引发错误。

int64

int64 数字类型指的是带符号的 64 位整数,其范围从 -263 到 263 - 1。这种类型的整数通常用于使用来自 Roblox 网站的 ID 编号的方法。例如,Player.UserId 是一个 int64MarketplaceService:PromptPurchase()TeleportService:Teleport() 都期望 ID 参数为 int64

表示法

数字的表示法是从最显著的数字开始(大端)。在 Luau 中有多种表示数字字面量的方法:

  • 十进制(基数-10) — 正常书写数字的数字部分,使用数字 0–9 和一个可选的小数点,例如 7, 1.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)。

运算

您可以使用逻辑和关系 运算符 来操作和比较数字。您还可以在 math 库中使用数学函数,如 math.sqrt()math.exp(),以及在 bit32 库中进行位运算。

类型检查

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


local testInt = 5
local testDecimal = 9.12761656
local testString = "Hello"
print(type(testInt)) --> number
print(type(testDecimal)) --> number
print(type(testString)) --> string
print(typeof(testInt)) --> number
print(typeof(testDecimal)) --> number
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
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。