El introducirde dato number o double representa un número de precisión doble (64 bits) flotante.Los números pueden variar de -1.7 * 10 308 a 1.7 * 10 308 (alrededor de 15 dígitos de precisión, positivos o negativos).
Firmado y sin firmar
La señal del número indica si es positiva o negativa.Por ejemplo, 1 es positivo y -1 es negativo.En Luau, el número -0 es equivalente a 0 .
print(0 == -0) --> ciertoprint(-0 > 1) --> falsoprint(-0 < 1) --> ciertoprint(-0 > -1) --> ciertoprint(-0 < -1) --> false
Clasificaciones numéricas
Luau no distingue entre enteros y números, pero la referencia de la API a veces distingue entre ellos para ser más específica sobre cómo usar cada API.
flotante
El tipo de número float se refiere a un número real con un lugar decimal.En términos de ciencia de la computación, son un número de punto flotante de precisión única (32 bits) que no es tan preciso como los números de punto flotante de precisión doble, pero es lo suficientemente preciso para la mayoría de los casos de uso y requiere menos memoria y almacenamiento.
intento
El introducirde número integer , o int , se refiere a un número entero de 32 bits, que va de -2 31 a 2 31 - 1.Las propiedades y funciones que esperan números enteros pueden automáticamente redondear o elevar errores cuando asignas o les pasas números no enteros.
longitud int64
El tipo de número int64 se refiere a un entero de 64 bits firmado, que va de -2 63 a 2 63 - 1.Este tipo de entero es común para los métodos que utilizan números de identificación del sitio web de Roblox.Por ejemplo, Player.UserId es un int64 , y MarketplaceService:PromptPurchase() y TeleportService:Teleport() cada uno espera int64 para los argumentos de ID.
Notación
Los números se notan con los dígitos más significativos primero (big-endian). Hay múltiples maneras de notar los literales de números en Luau:
- Decimal (base-10) — Escribe los dígitos del número normalmente usando 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 un poder de 10.Por instancia, 12e3 es 12 × 10^3 (12,000).
- Hexadecimal (base-16) — Comience el número con 0x seguido de los números 0–9 o A–F (se ignoró la capitalización).Por ejemplo, 0xF es 15 y 0x3FC es 1020.
- Binario (base-2) — Empiece 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() en la biblioteca math y operaciones de bits en la biblioteca bit32.
Tipo de introspección
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 = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> númeroprint(type(testDecimal)) --> númeroprint(type(testString)) --> cadenaprint(typeof(testInt)) --> númeroprint(typeof(testDecimal)) --> númeroprint(typeof(testString)) --> string
Funciones redondas
Puedes redondear los números usando math.floor(), math.ceil() o math.modf().Estas funciones devuelven un resultado entero si Luau puede representarlo como entero.Si el número es demasiado grande, Luau lo devuelve como un flotante.
- Para determinar si un número x es un entero, use math.floor(x) == x .
- Para redondear un número hacia abajo, utilice math.floor() .
- Para redondear un número, utilice math.ceil() .
- Para redondear un número hacia cero, use math.modf() . También devuelve la diferencia fraccional del número redondeado como un segundo resultado.
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