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 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) --> verdad
print(-0 > 1) --> falso
print(-0 < 1) --> verdad
print(-0 > -1) --> verdad
print(-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 = 5
local testDecimal = 9.12761656
local testString = "Hello"
print(type(testInt)) --> número
print(type(testDecimal)) --> número
print(type(testString)) --> cuerda
print(typeof(testInt)) --> número
print(typeof(testDecimal)) --> número
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 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ños
print(math.floor(-3.3)) --> -4
print(math.ceil(3.3)) --> 4 años
print(math.ceil(-3.3)) --> -3
print(math.modf(3.3)) --> 3 0,299999999999999998
print(math.modf(-3.3)) --> -3 -0.2999999999999998