Inteiros e números de ponto flutuante
Veja como Lua representa números.
Inteiros e números de ponto flutuante é uma aula grátis de Lua Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Lua Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Lua Academy inclui 4 aulas no total.
Números no Lua
No Lua, o tipo number contém todos os tipos de valores numéricos. Você usa números para contar coisas, medir valores e fazer cálculos.
A partir do Lua 5.3, os números vêm em dois tipos: inteiros (números inteiros) e números de ponto flutuante (números com uma casa decimal).
Vamos imprimir alguns números para começar.
print(10)
print(3.14)O que é um número inteiro?
Um inteiro é um número sem parte fracionária, como 0, 42 ou -7.
Quando você escreve um número sem uma casa decimal, o Lua o trata como um inteiro.
5é um inteiro-100é um inteiro
local apples = 5
print(apples)O que é um número de ponto flutuante?
Um número de ponto flutuante pode representar valores fracionários, como 3.14 ou 0.5.
Qualquer número que você escreva com uma casa decimal é um número de ponto flutuante, até mesmo 2.0.
Números de ponto flutuante permitem armazenar medições e resultados de divisões.
local price = 2.5
print(price)Verificando o subtipo
Inteiros e números de ponto flutuante compartilham o nome de tipo "number". Para descobrir qual subtipo um valor possui, use math.type().
Essa função retorna a cadeia de caracteres "integer", "float" ou nil se o valor não for um número.
print(math.type(10))
print(math.type(3.14))type() versus math.type()
A função type() informa o tipo geral. Para qualquer número, ela retorna "number".
A função math.type() vai além e informa se o valor é um inteiro ou um número de ponto flutuante. Use a ferramenta certa para cada tarefa.
print(type(7))
print(math.type(7))A divisão sempre produz um número de ponto flutuante
O operador de divisão comum / sempre produz um número de ponto flutuante, mesmo quando a divisão é exata.
Assim, 10 / 2 produz 5.0, não 5. Observe o .0 na saída.
print(10 / 2)
print(math.type(10 / 2))Divisão inteira
Use o operador de divisão inteira // quando quiser um resultado inteiro. Ele divide e arredonda para baixo, em direção ao infinito negativo.
Se os dois operandos forem inteiros, o resultado será um inteiro.
print(7 // 2)
print(math.type(7 // 2))Números de ponto flutuante podem conter valores inteiros
Um número de ponto flutuante também pode armazenar um número inteiro. 4.0 tem o mesmo valor que 4, mas seu subtipo continua sendo float.
O Lua considera 4 == 4.0 verdadeiro porque os dois valores numéricos são iguais.
print(4 == 4.0)
print(math.type(4.0))Convertendo número de ponto flutuante em inteiro
Você pode transformar um número de ponto flutuante em um inteiro com math.tointeger(). A função retorna o inteiro se o número de ponto flutuante não tiver parte fracionária; caso contrário, retorna nil.
Isso é útil quando uma API exige um inteiro de fato.
print(math.tointeger(8.0))
print(math.tointeger(8.5))Notação científica
O Lua permite escrever números de ponto flutuante muito grandes ou muito pequenos usando notação científica com e.
1e3 significa 1 vezes 10 elevado à potência 3, que é 1000.0. O resultado é sempre um número de ponto flutuante.
print(1e3)
print(2.5e-2)Limites dos inteiros
Os inteiros do Lua são armazenados em 64 bits, portanto têm um intervalo enorme, mas finito. As constantes math.maxinteger e math.mininteger mostram os limites.
Números de ponto flutuante podem representar magnitudes maiores, mas perdem precisão exata ao representar números inteiros grandes.
print(math.maxinteger)
print(math.mininteger)Verificação rápida
Teste o que você aprendeu sobre inteiros e números de ponto flutuante.
Recapitulação
Você aprendeu que os números do Lua têm dois subtipos: inteiros (números inteiros) e números de ponto flutuante (decimais).
Use math.type() para diferenciá-los, lembre-se de que / sempre produz um número de ponto flutuante e de que // pode manter o resultado como inteiro. math.tointeger() faz a conversão quando possível.
Em seguida, você explorará os operadores aritméticos em detalhes.
Perguntas Frequentes
A aula “Inteiros e números de ponto flutuante” é grátis?
Sim — o texto completo de “Inteiros e números de ponto flutuante” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.
O que vou aprender em “Inteiros e números de ponto flutuante”?
Veja como Lua representa números. Você pratica Lua Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Lua Academy?
Nenhuma experiência prévia é necessária. Lua Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Inteiros e números de ponto flutuante”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Lua Academy?
Sim. Cada aula de Lua Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Inteiros e números de ponto flutuante
- Operadores aritméticos
- A biblioteca math
- Formatação de números