El número introducirde datos, o double, representa un número de punto flotante de doble precisión (64 bits). Los números pueden variar desde -1.7 * 10 308 a 1.7 * 10 308 (alrededor de 15 dígitos de precisión, positivos o negativos).
Firmado y No Firmado
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) --> verdadprint(-0 > 1) --> falsoprint(-0 < 1) --> verdadprint(-0 > -1) --> verdadprint(-0 < -1) --> false
Clasificaciones de números
Luau no distingue entre números enteros y números, pero la referencia de la API a veces distingue entre ellos para ser más específico 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 informática, son números de punto flotante de una sola precisión (32-bit) , que no son tan precisos como los números de punto flotante de doble precisión, pero son lo suficientemente precisos para la mayoría de los casos de uso y requieren menos memoria y almacenamiento.
intento
El introducirde número integer, o int, se refiere a un número entero de 32 bits, que va desde -2 31 hasta 2 31 - 1. Las propiedades y funciones que esperan números enteros pueden redondear o generar errores automáticamente cuando asigna o pasa números no enteros a ellos.
int64
El tipo de número int64 se refiere a un entero de 64 bits firmado, que va desde -2 63 hasta 2 63 - 1. Este tipo de entero es común para los métodos que usan números de ID 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 primero con los dígitos más significativos (big-endian). Hay múltiples formas de notar los números literales en Roblox Lua:
- Decimal (base-10) Escribe los dígitos del número normalmente usando dígitos 09 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 número entero para aumentar el número decimal a una potencia de 10. Por instancia, 12e3 es 12 × 10^3 (12,000).
- Hexadecimal (base-16) Comience el número con 0x seguido de los dígitos 09 o AF (capitalización ignorada). Por ejemplo, 0xF es 15 y 0x3FC es 1020.
- Binario (base-2) Comience el número con 0b seguido de 0s o 1s, por ejemplo 0b1100 (12 en formato decimal).
Operaciones
Puede usar operadores lógicos y relacionales para manipular y comparar números. También puede usar funciones matemáticas como math.sqrt() y math.exp() en la biblioteca math y operaciones bitwise en la biblioteca bit32.
Tipo Introspección
Puedes determinar si un introducirx 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)) --> cuerdaprint(typeof(testInt)) --> númeroprint(typeof(testDecimal)) --> númeroprint(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 flotante.
- Para determinar si un número x es un entero, usa math.floor(x) == x.
- Para redondear un número, usa math.floor().
- Para redondear un número, usa math.ceil().
- Para redondear un número hacia cero, usa math.modf(). También devuelve la diferencia fraccional del número redondeado como segundo resultado.
print(math.floor(3.3)) --> 3 añosprint(math.floor(-3.3)) --> -4print(math.ceil(3.3)) --> 4 añosprint(math.ceil(-3.3)) --> -3print(math.modf(3.3)) --> 3 0,299999999999999998print(math.modf(-3.3)) --> -3 -0.2999999999999998