Numeri

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

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) --> vero
print(-0 > 1) --> falso
print(-0 < 1) --> vero
print(-0 > -1) --> vero
print(-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 = 5
local testDecimal = 9.12761656
local testString = "Hello"
print(type(testInt)) --> numero
print(type(testDecimal)) --> numero
print(type(testString)) --> stringa
print(typeof(testInt)) --> numero
print(typeof(testDecimal)) --> numero
print(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)) --> 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