Números

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El tipo de dato número, o double, representa un número de punto flotante de doble precisión (64 bits). Los números pueden variar de -1.7 * 10308 a 1.7 * 10308 (alrededor de 15 dígitos de precisión, positivos o negativos).

Con signo y sin signo

El signo del número indica si es positivo o negativo. Por ejemplo, 1 es positivo y -1 es negativo. En Luau, el número -0 es equivalente a 0.


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

Clasificaciones de números

Luau no distingue entre enteros y números, pero la referencia de la API a veces los distingue para ser más específicos sobre cómo usar cada API.

float

El tipo de número float se refiere a un número real con un punto decimal. En términos de ciencia computacional, son números de punto flotante de precisión simple (32 bits), que no son tan precisos como los números de punto flotante de doble precisión, pero son suficientemente precisos para la mayoría de los casos de uso y requieren menos memoria y almacenamiento.

int

El tipo de número integer, o int, se refiere a un número entero de 32 bits, que varía de -231 a 231 - 1. Las propiedades y funciones que esperan enteros pueden redondear automáticamente o generar errores cuando les asignas o pasas no enteros.

int64

El tipo de número int64 se refiere a un entero con signo de 64 bits, que varía de -263 a 263 - 1. Este tipo de entero es común para métodos que utilizan números de ID del sitio web de Roblox. Por ejemplo, Player.UserId es un int64, y MarketplaceService:PromptPurchase() y TeleportService:Teleport() esperan cada uno int64 para los argumentos de ID.

Notación

Los números se anotan con los dígitos más significativos primero (big-endian). Hay múltiples formas de anotar literales numéricos en Luau:

  • Decimal (base-10) — Escribe los dígitos del número normalmente usando los dígitos 0–9 con un solo punto decimal opcional, por ejemplo 7, 1.25, o -22.5.
  • Notación científica — Escribe un número decimal seguido de e o e+, luego un entero para elevar el número decimal a una potencia de 10. Por ejemplo, 12e3 es 12 × 10^3 (12,000).
  • Hexadecimal (base-16) — Comienza el número con 0x seguido de los dígitos 0–9 o A–F (sin importar la capitalización). Por ejemplo, 0xF es 15 y 0x3FC es 1020.
  • Binario (base-2) — Comienza el número con 0b seguido de 0s o 1s, por ejemplo 0b1100 (12 en formato decimal).

Operaciones

Puedes usar operadores lógicos y relacionales para manipular y comparar números. También puedes usar funciones matemáticas como math.sqrt() y math.exp() de la biblioteca math, y operaciones a nivel de bit en la biblioteca bit32.

Introspección de tipos

Puedes determinar si un valor x es un número usando type(x) o typeof(x). Ambos devuelven la cadena number si x es un número.


local testInt = 5
local testDecimal = 9.12761656
local testString = "Hola"
print(type(testInt)) --> number
print(type(testDecimal)) --> number
print(type(testString)) --> string
print(typeof(testInt)) --> number
print(typeof(testDecimal)) --> number
print(typeof(testString)) --> string

Funciones de redondeo

Puedes redondear números usando math.floor(), math.ceil(), o math.modf(). Estas funciones devuelven un resultado entero si Luau puede representarlo como un entero. Si el número es demasiado grande, Luau lo devuelve como un float.

  • Para determinar si un número x es un entero, usa math.floor(x) == x.
  • Para redondear un número hacia abajo, usa math.floor().
  • Para redondear un número hacia arriba, usa math.ceil().
  • Para redondear un número hacia cero, usa math.modf(). También devuelve la diferencia fraccionaria del número redondeado como segundo resultado.

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, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.