0Pricing
Lua Academy · Aula

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

  1. Inteiros e números de ponto flutuante
  2. Operadores aritméticos
  3. A biblioteca math
  4. Formatação de números
← Voltar para Lua Academy