O digitarde dado numbero , ou double, representa um número de ponto flutuante de precisão dupla (64 bits).Os números podem variar de -1.7 * 10 308 a 1.7 * 10 308 (cerca de 15 dígitos de precisão, positivos ou negativos).
Assinado e não assinado
O sinal do número indica se é positivo ou negativo.Por exemplo, 1 é positivo e -1 é negativo.Em Luau, o número -0 é equivalente a 0 .
print(0 == -0) --> verdadeiroprint(-0 > 1) --> falsoprint(-0 < 1) --> verdadeiroprint(-0 > -1) --> verdadeiroprint(-0 < -1) --> false
Classificações de número
O Luau não distingue entre inteiros e números, mas a referência da API às vezes distingue entre eles para ser mais específica sobre como usar cada API (Interface de Programação para Aplicações).
float
O tipo de número float refere-se a um número real com um localdecimal.Em termos de ciência da computação, eles são numberos de ponto flutuante de precisão única (32 bits), que não são tão precisos quanto os números de ponto flutuante de precisão dupla, mas são precisos o suficiente para a maioria dos casos de uso e requerem menos memória e armazenamento.
inteiro
O digitarde número integer número, ou int , refere-se a um número inteiro de 32 bits, que varia de -2 31 a 2 31 - 1.Propriedades e funções que esperam inteiros podem automaticamente arredondar ou aumentar erros quando você atribuir ou passar não-inteiros a eles.
int64
O tipo de número int64 refere-se a um integralde 64 bits assinado, que varia de -2 63 a 2 63 - 1.Esse tipo de inteiro é comum para métodos que usam números de ID do site do Roblox.Por exemplo, Player.UserId é um int64 e MarketplaceService:PromptPurchase() e TeleportService:Teleport() cada espera int64 para os argumentos de ID.
Notação
Os números são notados com os dígitos mais significativos primeiro (big-endian). Existem várias maneiras de notar literalmente números em Luau:
- Decimal (base-10) — Escreva os dígitos do número normalmente usando dígitos 0–9 com um ponto decimal opcional único, por exemplo 7 , 1.25 ou -22.5 .
- Notação científica — Escreva um número decimal seguido por e ou e+ , então um inteiro para aumentar o número decimal a um poder de 10.Por instância, 12e3 é 12 × 10^3 (12.000).
- Hexadecimal (base-16) — Comece o número com 0x seguido por números 0–9 ou A–F (capitalização ignorada).Por exemplo, 0xF é 15 e 0x3FC é 1020.
- Binário (base-2) — Comece o número com 0b seguido por 0s ou 1s, por exemplo 0b1100 (12 no formato decimal).
Operações
Você pode usar operadores lógicos e relacionais para manipular e comparar números.Você também pode usar funções matemáticas como math.sqrt() e math.exp() na biblioteca math e operações de bits na biblioteca bit32.
Tipo de introspecção
Você pode determinar se um valor x é um número usando type(x) ou typeof(x).Ambos retornam a string number se x for um número.
local testInt = 5local testDecimal = 9.12761656local testString = "Hello"print(type(testInt)) --> númeroprint(type(testDecimal)) --> númeroprint(type(testString)) --> string / cadeia / textoprint(typeof(testInt)) --> númeroprint(typeof(testDecimal)) --> númeroprint(typeof(testString)) --> string
Funções redondas
Você pode arredondar números usando math.floor(), math.ceil() ou math.modf().Essas funções retornam um resultado inteiro se Luau puder representá-lo como um integral.Se o número for muito grande, o Luau retorna-o como um Float.
- Para determinar se um número x é um integral, use math.floor(x) == x.
- Para arredondar um número para baixo, use math.floor() .
- Para arredondar um número para cima, use math.ceil() .
- Para arredondar um número em direção a zero, use math.modf(). Ele também retorna a diferença fracionária do número arredondado como um segundo resultado.
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