Numeri

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

Il tipo di dato number, o double, rappresenta un numero a virgola mobile a doppia precisione (64 bit). I numeri possono variare da -1.7 * 10308 a 1.7 * 10308 (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) --> true
print(-0 > 1) --> false
print(-0 < 1) --> true
print(-0 > -1) --> true
print(-0 < -1) --> false

Classificazioni dei numeri

Luau non distingue tra interi e numeri, ma la documentazione dell'API a volte distingue tra di essi per essere più specifici su come utilizzare ciascuna API.

float

Il tipo di numero float si riferisce a un numero reale con una cifra decimale. In termini informatici, sono numeri a virgola mobile a singola precisione (32 bit), che non sono precisi come i numeri a virgola mobile a doppia precisione, ma sono sufficientemente precisi per la maggior parte degli usi e richiedono meno memoria e spazio di archiviazione.

int

Il tipo di numero integer, o int, si riferisce a un numero intero a 32 bit, che varia da -231 a 231 - 1. Proprietà e funzioni che si aspettano interi possono arrotondare automaticamente o sollevare errori quando assegni o passi non interi a esse.

int64

Il tipo di numero int64 si riferisce a un intero firmato a 64 bit, che varia da -263 a 263 - 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() si aspettano entrambi int64 per gli argomenti ID.

Notazione

I numeri sono annotati con le cifre più significative per prime (big-endian). Ci sono modi multipli per annotare letterali numerici in Luau:

  • Decimale (base-10) — Scrivi le cifre del numero normalmente usando le cifre 0–9 con un singolo 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 maiuscola è ignorata). Ad esempio, 0xF è 15 e 0x3FC è 1020.
  • Binario (base-2) — Inizia il numero con 0b seguito da 0 o 1, ad esempio 0b1100 (12 in formato decimale).

Operazioni

Puoi usare operatori logici e relazionali operators 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.

Introspezione del tipo

Puoi determinare se un valore x è un numero usando 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)) --> number
print(type(testDecimal)) --> number
print(type(testString)) --> string
print(typeof(testInt)) --> number
print(typeof(testDecimal)) --> number
print(typeof(testString)) --> string

Funzioni di arrotondamento

Puoi arrotondare i numeri usando math.floor(), math.ceil(), o math.modf(). Queste funzioni restituiscono un risultato intero se Luau può rappresentarlo come un intero. Se il numero è troppo grande, Luau lo restituisce come float.

  • Per determinare se un numero x è un intero, usa math.floor(x) == x.
  • Per arrotondare un numero verso il basso, usa math.floor().
  • Per arrotondare un numero verso l'alto, usa math.ceil().
  • Per arrotondare un numero verso zero, usa math.modf(). Restituisce anche la differenza frazionaria 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
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.