Como arredondar número para baixo com JavaScript
Neste artigo você vai aprender a como arredondar número para baixo com JavaScript, vamos utilizar uma simples abordagem!
Para arredondar número para baixo com JavaScript, use Math.floor(), que devolve o maior inteiro menor ou igual ao valor informado:
Math.floor(45.95) retorna 45 Math.floor(45.05) retorna 45 Math.floor(4) retorna 4
Com número negativo, Math.floor() vai para o inteiro mais distante de zero: Math.floor(-45.05) retorna -46
Se a intenção é apenas remover a parte decimal, sem mudar o sinal, use Math.trunc(): Math.trunc(13.37) retorna 13 e Math.trunc(-13.37) retorna -13
Math é um objeto estático, então a chamada é sempre Math.floor(valor)

Fala programador(a), beleza? Bora aprender mais sobre números com JavaScript!
Arredondar número para baixo com JavaScript é uma tarefa comum para desenvolvedores que trabalham com dados numéricos.
Às vezes, é necessário arredondar um número para a casa decimal mais próxima, mas outras vezes é necessário arredondar para baixo, ou seja, para o próximo número inteiro menor.
Neste artigo, vamos explorar algumas maneiras de arredondar um número para baixo usando JavaScript.
A palavra-chave “arredondar número para baixo com JavaScript” é importante porque ajuda a identificar o assunto principal deste artigo.
É fundamental que o conteúdo do artigo atenda às necessidades do usuário que busca essa palavra-chave, fornecendo informações relevantes e úteis.
Para arredondar um número para baixo em JavaScript, podemos usar a função Math.floor().
Essa função retorna o maior número inteiro menor ou igual ao número fornecido. Por exemplo, se o número for 6.8, a função Math.floor() retornará 6. Se o número for -3.2, a função retornará -4.
Aqui está um exemplo simples de como usar a função Math.floor():
let numero = 7.6; let numeroArredondado = Math.floor(numero); console.log(numeroArredondado); // 7
Neste exemplo, a variável numero é igual a 7.6. A função Math.floor() é aplicada a essa variável, retornando o valor 7, que é armazenado na variável numeroArredondado.
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 116 aulas
- 4 projetos
- 9h 23min
O valor 7 é então exibido no console.
Também podemos usar a função parseInt() para arredondar um número para baixo. A função parseInt() analisa uma string e retorna um número inteiro.
Se o número fornecido tiver uma casa decimal, a função parseInt() cortará a parte decimal. Por exemplo, se o número for 5.8, a função parseInt() retornará 5.
Aqui está um exemplo simples de como usar a função parseInt() para arredondar um número para baixo:
let numero = 6.7; let numeroArredondado = parseInt(numero); console.log(numeroArredondado); // 6
Neste exemplo, a variável numero é igual a 6.7. A função parseInt() é aplicada a essa variável, retornando o valor 6, que é armazenado na variável numeroArredondado.
O valor 6 é então exibido no console.
É importante notar que, ao usar a função parseInt() para arredondar um número para baixo, a função não arredondará o número para a casa decimal mais próxima.
Em vez disso, ele simplesmente cortará a parte decimal do número. Portanto, se você precisa arredondar um número para a casa decimal mais próxima, a função Math.floor() é a melhor opção.
Quer aprender mais sobre React? Confira o vídeo abaixo:
Conclusão
Em conclusão, arredondar números para baixo com JavaScript é uma tarefa fácil e pode ser realizada de várias maneiras.
A função Math.floor() é a opção mais comum para arredondar um número para o próximo número inteiro menor, enquanto a função parseInt() é uma opção para cortar a parte decimal de um número.
É importante lembrar que essas funções retornam números inteiros, por isso são ideais para situações em que números fracionários não são necessários ou desejáveis.
Ao utilizar essas funções, os desenvolvedores podem garantir que seus dados sejam apresentados de forma precisa e confiável, de acordo com as necessidades do projeto.
Por isso, é importante conhecer as ferramentas disponíveis e saber quando usá-las.
Em resumo, arredondar números para baixo é uma operação comum em programação e, com as funções corretas, pode ser facilmente realizada com JavaScript.
Conhecer essas funções e como usá-las pode ajudar a tornar o processo de arredondamento mais eficiente e preciso.
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Nosso principal objetivo é tornar você um dev no menor tempo possível, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
<h2>E quando o número é negativo?</h2> <p>Aqui mora a pegadinha que derruba muita gente</p> <p>Math.floor() não corta a parte decimal, ele devolve o MENOR inteiro que ainda é menor ou igual ao seu número</p> <p>Com número positivo dá na mesma, olha só:</p> <pre><code>console.log(Math.floor(45.95)) // 45 console.log(Math.floor(45.05)) // 45 console.log(Math.floor(4)) // 4</code></pre> <p>Agora vira o sinal e o resultado te surpreende:</p> <pre><code>console.log(Math.floor(-45.05)) // -46</code></pre> <p>Por que -46? Porque o inteiro menor que -45.05 é -46, e não -45</p> <p>Ou seja, com negativo o Math.floor() te joga pro lado mais distante do zero</p> <p>Tome cuidado! Se o que tu quer é só jogar a parte decimal fora, o método é outro, e eu mostro ele logo abaixo 😀</p> <p>Ah, e um detalhe: Math não é construtor, é um objeto estático, então é sempre Math.floor(valor), nunca new Math</p>
<h2>Math.trunc(): cortar a parte decimal sem arredondar</h2> <p>Se você conhece a diferença entre "arredondar" e "truncar", já matou a charada</p> <p>Math.trunc() devolve a parte inteira do número removendo os dígitos fracionários, sem ligar pro sinal:</p> <pre><code>console.log(Math.trunc(13.37)) // 13 console.log(Math.trunc(-13.37)) // -13</code></pre> <p>Compare com o Math.floor(-45.05), que devolve -46</p> <p>É essa a diferença: floor sempre desce, trunc só corta</p> <p>Math.trunc() faz parte da especificação ES2015, então é built-in, não precisa de biblioteca nenhuma</p> <p>Regra prática: número sempre positivo? Tanto faz. Pode vir negativo? Aí escolher errado muda seu resultado em 1 e o bug aparece só em produção…</p>
<h2>Cuidado com o parseInt() para arredondar número para baixo:</h2> <p>O parseInt() até funciona no exemplo bonitinho, mas ele não foi feito pra isso</p> <p>Que problema? parseInt() converte o primeiro argumento para STRING antes de analisar, e a leitura para no primeiro caractere inválido</p> <p>Com número pequeno demais, a string vira notação exponencial e a conta desanda:</p> <pre><code>console.log(parseInt(0.0000005)) // 5</code></pre> <p>Cinco! Porque 0.0000005 virou a string "5e-7" e o parseInt() parou no "e"</p> <p>Isso vale pra números maiores ou iguais a 1e+21 e menores ou iguais a 1e-7</p> <p>E tem mais um detalhe que a MDN recomenda: sempre informe o radix</p> <pre><code>parseInt(valor, 10)</code></pre> <p>Sem o radix, uma string começando com "0x" ou "0X" é lida como hexadecimal (base 16), e aí você recebe um número que nem imaginava</p> <p>Resumo da ópera: parseInt() é pra transformar TEXTO em número, não pra arredondar</p>
<h2>toFixed() arredonda para baixo?</h2> <p>Não, e essa confusão é comum</p> <p>Number.prototype.toFixed() devolve uma STRING, não um número, com exatamente a quantidade de casas que você pediu, arredondando e completando com zeros quando precisa</p> <p>Ele também não usa notação exponencial na saída</p> <p>Então se você fizer conta com o retorno dele, tu vai estar fazendo conta com texto, e o JavaScript vai te obedecer do jeito errado 😛</p> <p>Pra arredondar pra baixo e continuar com um number na mão, o caminho é Math.floor() ou Math.trunc()</p>
<h2>E os truques com | 0 e ~~?</h2> <p>Você já deve ter visto por aí gente escrevendo <code>numero | 0</code> ou <code>~~numero</code> pra cortar decimal</p> <p>Funciona, mas tem um preço: operadores bitwise convertem os operandos para inteiros de 32 bits com sinal</p> <p>Isso prende o resultado na faixa de -2147483648 a 2147483647</p> <p>Passou disso, o valor estoura e você recebe qualquer coisa</p> <p>Já me ferrei uma vez com esse tipo de atalho: código curtinho, bonito, e um bug que só aparece quando o número cresce…</p> <p>Prefira o método explícito, teu eu do futuro agradece</p>
<h2>Qual usar em cada caso:</h2> <p>Pra não decorar nada, vai o resumo de bolso:</p> <ul> <li><strong>Math.floor()</strong>: quando você quer SEMPRE descer pro inteiro menor, inclusive com negativo (Math.floor(-45.05) devolve -46)</li> <li><strong>Math.trunc()</strong>: quando você quer só remover a parte decimal, mantendo o sinal (Math.trunc(-13.37) devolve -13)</li> <li><strong>parseInt(valor, 10)</strong>: quando a entrada é TEXTO e você precisa extrair o número dali</li> <li><strong>toFixed()</strong>: quando o destino é exibição, porque o retorno é string</li> </ul> <p>Ficou fácil escolher, né? 😀</p>
<h2>Onde eu uso Math.floor() no dia a dia:</h2> <p>Quando gravei a aula de gerar número aleatório entre dois números aqui do canal, o Math.floor() foi justamente a peça que segura tudo no lugar</p> <p>A função ficou assim:</p> <pre><code>function randomNumberInterval(menor, maior) { return Math.floor(Math.random() * (maior – menor + 1)) + menor }
console.log(randomNumberInterval(0, 10)) console.log(randomNumberInterval(555, 1100)) console.log(randomNumberInterval(89, 1431))</code></pre> <p>Repara no <code>+ 1</code> dentro do parêntese</p> <p>Ele é de propósito: deixo o valor passar um pouquinho do número maior, e o Math.floor() traz ele de volta pra dentro do intervalo</p> <p>Sem o arredondamento pra baixo, o Math.random() te entrega valor quebrado e o topo do intervalo nunca é sorteado</p> <p>Na hora de testar eu imprimi vários intervalos no console e fiquei recarregando a página pra ver se escapava algum número pra fora, pra cima ou pra baixo</p> <p>Não escapou nenhum, e é por isso que essa combinação virou padrão nos meus códigos: uma função só, flexível, que tu usa em qualquer lugar que precise de aleatoriedade</p> <p>Bora testar aí no seu console? 😀</p>
Perguntas frequentes
Math.floor() ou Math.trunc(): qual usar para arredondar para baixo?
Math.floor() sempre desce para o inteiro menor ou igual, então Math.floor(-45.05) devolve -46
Math.trunc() só remove os dígitos fracionários, independente do sinal, então Math.trunc(-13.37) devolve -13
Se seus números são sempre positivos, os dois entregam o mesmo resultado
Se podem ser negativos, a escolha muda o resultado
Por que Math.floor(-45.05) devolve -46 e não -45?
Porque Math.floor() não corta a parte decimal, ele retorna o maior inteiro que ainda é menor ou igual ao número
Entre -46 e -45, quem é menor que -45.05 é o -46
Pra cortar a decimal e ficar com -13 em vez de -14 no caso de -13.37, o método é Math.trunc()
Posso usar parseInt() para arredondar um número para baixo?
Dá pra usar, mas não é o método indicado
parseInt() converte o primeiro argumento para string antes de analisar, e a análise para no primeiro caractere inválido
Por isso parseInt(0.0000005) retorna 5: o número vira a string "5e-7" e a leitura para no "e"
A MDN também recomenda sempre informar o radix, com parseInt(valor, 10), porque sem ele uma string iniciada em "0x" ou "0X" é lida como hexadecimal
toFixed() serve para arredondar número para baixo?
Não
Number.prototype.toFixed() devolve uma string, não um número, com exatamente a quantidade de casas pedida, arredondando e completando com zeros quando necessário
Ele é útil pra exibir valor formatado, não pra continuar fazendo conta
Os atalhos | 0 e ~~ substituem o Math.floor()?
Só dentro de um limite
Operadores bitwise convertem os operandos para inteiros de 32 bits com sinal, o que prende o resultado na faixa de -2147483648 a 2147483647
Fora dessa faixa o valor estoura e o resultado deixa de fazer sentido, então o método explícito é mais seguro
Math.trunc() é recente? Precisa de alguma biblioteca?
Não precisa de biblioteca nenhuma, é built-in da linguagem
Math.trunc() faz parte da especificação ES2015
Leia também
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const

Como redirecionar para outra página com JavaScript
Exercícios de lógica de programação JavaScript com gabarito
Quais são os melhores exercícios lógica de programação JavaScript? Colocar em prática os exercícios de lógica de programação em JavaScript é de extrema importância para […]
