Il inserisci / scrividi dati numbero , o double, rappresenta un numero float a doppia precisione (64 bit) .I numeri possono variare da -1.7 * 10 308 a 1.7 * 10 308 (circa 15 cifre di precisione, positive o negative).
Firmato e non firmato
Il segno del numero indica se è positivo o negativo.Ad esempio, 1 è positivo e -1 è negativo.In Luau, il numero -0 è equivalente a 0 .
print(0 == -0) --> veroprint(-0 > 1) --> falsoprint(-0 < 1) --> veroprint(-0 > -1) --> veroprint(-0 < -1) --> false
Classificazioni numeriche
Luau non distingue tra interi e numeri, ma il riferimento API a volte distingue tra di loro per essere più specifico su come utilizzare ciascuna API.
galleggiante
Il tipo di numero float si riferisce a un numero reale con un Postodecimale.In Condizionidi informatica, sono numberi di precisione singola (32-bit) a galleggiante, che non sono così precisi come i numeri di precisione doppia a galleggiante, ma sono sufficientemente precisi per la maggior parte dei casi d'uso e richiedono meno memoria e storage.
int
Il inserisci / scrividi numero integer , o int , si riferisce a un intero a 32 bit, che va da -2 31 a 2 31 - 1.Le proprietà e le funzioni che attendono interi possono automaticamente arrotondare o sollevare errori quando assegni o passi a loro non-interi.
int64
Il tipo di numero int64 si riferisce a un Integroa 64 bit firmato, che va da -2 63 a 2 63 - 1.Questo tipo di intero è comune per i metodi che utilizzano numeri ID dal sito Web di Roblox.Ad esempio, Player.UserId è un int64 e MarketplaceService:PromptPurchase() e TeleportService:Teleport() ogni attende int64 per gli argomenti ID.
Notazione
I numeri sono notati con i numeri più significativi prima (big-endian). Ci sono diversi modi per notare i letterali numerici in Luau:
- Decimale (base-10) — Scrivi i numeri dei numeri normalmente usando i numeri 0–9 con un solo punto decimale opzionale, ad esempio 7 , 1.25 , o -22.5 .
- Notazione scientifica — Scrivi un numero decimale seguito da e o e+ , quindi un intero per elevare il numero decimale a una potenza di 10.Ad esempio, 12e3 è 12 × 10^3 (12.000).
- Esadecimale (base-16) — Inizia il numero con 0x seguito da cifre 0–9 o A–F (la capitolizzazione è ignorata).Ad esempio, 0xF è 15 e 0x3FC è 1020.
- Binario (base-2) — Inizia il numero con 0b seguito da 0s o 1s, ad esempio 0b1100 (12 nel formato decimale).
Operazioni
Puoi usare gli operatori logici e relazionali per manipolare e confrontare i numeri.Puoi anche utilizzare funzioni matematiche come math.sqrt() e math.exp() nella libreria math e operazioni bitwise nella libreria bit32.
Tipo di introspezione
Puoi determinare se un valore x è un numero utilizzando type(x) o typeof(x) .Entrambi restituiscono la stringa number se x è un numero.
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> numeroprint(type(testDecimal)) --> numeroprint(type(testString)) --> stringaprint(typeof(testInt)) --> numeroprint(typeof(testDecimal)) --> numeroprint(typeof(testString)) --> string
Funzioni di round
Puoi arrotondare i numeri usando math.floor() , math.ceil() o math.modf() .Queste funzioni restituiscono un risultato intero se Luau può rappresentarlo come Integro.Se il numero è troppo grande, Luau lo restituisce come Galleggiante.
- Per determinare se un numero x è un Integro, usa math.floor(x) == x .
- Per arrotondare un numero verso il basso, usa math.floor() .
- Per arrotondare un numero, usa math.ceil() .
- Per arrotondare un numero verso lo zero, usa math.modf() . Ritorna anche la differenza frazionale del numero arrotondato come secondo Risultato.
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