Como arredondar e limitar casas decimais no JavaScript: arredondar para cima, para baixo e formatar para 2 casas decimais 

Felipe Nascimento
Felipe Nascimento

Compartilhe

Avalie este artigo

4 minutos de leitura

Durante um projeto, surgiu a necessidade de entender diferentes formas de arredondar e formatar números no JavaScript, como quando precisamos calcular quanto se paga por hora trabalhada.

Para isso, criamos uma função que recebe o salário mensal e calcula o valor por hora: 

/* Exemplo de como arredondar e limitar casas decimais em JavaScript */ 
function ganhoPorHora(salario, horasTrabalhadasNoMes) { 
  const salarioHora = (salario / horasTrabalhadasNoMes);  
  return salarioHora; 
}

Resultado da função: 

ganhoPorHora(3000,176);  

O valor por hora do salário seria: `17.045454545454547`. No entanto, valores financeiros normalmente são apresentados com apenas duas casas decimais. Assim, é necessário arredondar esse resultado

No JavaScript, para arredondar números, já existe um método do objeto Math que arredonda os números para o inteiro mais próximo: o Math.round().

Ele é amplamente utilizado para arredondar valores para o inteiro mais próximo. Este método é muito útil quando você precisa fazer arredondamento javascript básico.  

Como usar Math.round() para arredondar números no JavaScript 

function ganhoPorHora(salario, horasTrabalhadasNoMes) { 
  const salarioHora = (salario / horasTrabalhadasNoMes);  
  return Math.round(salarioHora); 
}

Resultado da função, agora utilizando Math.round() 

ganhoPorHora(3000,176);  

O valor obtido é 17, eliminando as casas decimais, mas perdendo a precisão necessária para valores monetários. 

Isso ocorre porque o método Math.round() retorna o valor de um número arredondado para o inteiro mais próximo. 

Banner promocional da Alura destacando até 35% de desconto em cursos de tecnologia. A mensagem reforça que a diferença entre potencial e resultado está no preparo, incentivando profissionais a se anteciparem às mudanças do mercado e investirem no desenvolvimento de novas habilidades. A imagem mostra uma pessoa usando fones de ouvido e há um botão com a chamada "Aproveitar agora" para começar a evoluir na carreira tech.

Como limitar casas decimais em JavaScript com o método toFixed() 

Como lidamos com valores financeiros, é importante considerar os centavos. Com o método .toFixed(), é possível controlar a quantidade de casas decimais após a vírgula, bastando informar esse número como parâmetro. 

Para obter duas casas decimais, usamos toFixed(2). Um detalhe importante: o método .toFixed() arredonda o número, por exemplo, 11.123 vira 11.12 e 20.555 vira 20.56. Vale ressaltar também que seu retorno é uma string que representa o número formatado. 

function ganhoPorHora(salario, horasTrabalhadasNoMes) { 
  const salarioHora = (salario / horasTrabalhadasNoMes);  
  const total = salarioHora.toFixed(2); 
  return total; 
};

Agora que conseguimos exibir o resultado com duas casas decimais, podemos aprimorar ainda mais, formatando na moeda local (Real). 

Como formatar moeda no JavaScript com toLocaleString() 

No JavaScript temos um método chamado toLocaleString() que converte um número para uma string formatada de acordo com as convenções locais (incluindo separadores de milhar, símbolo da moeda e casas decimais), tornando a tarefa do programador muito mais simples.

Este método utiliza a API de Internacionalização (Intl) internamente. 

O método toLocaleString() recebe como argumento um objeto literal de configurações. Veja os principais parâmetros: 

style : Que é o estilo do formato a ser utilizado, aqui é permitido usar: 

  1. decimal para representar números simples. 
  2. currency que diz respeito ao formato monetário e que vai indicar a moeda que vai ser utilizada. 
  3. percent para formato percentual. 

currency: A moeda para usar na formatação monetária 

function ganhoPorHora(salario, horasTrabalhadasNoMes) { 
  const salarioHora = (salario / horasTrabalhadasNoMes);  
  const formatado = salarioHora.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }); 
  return formatado; 
}

Utilizando a formatação com toLocaleString, o resultado fica assim: 

ganhoPorHora(3000,176); //'R$ 17,05' 

Para saber mais sobre o assunto

 No JavaScript, há outros métodos que podem ser utilizados para arredondar números: 

  • Math.ceil(): retorna o menor inteiro maior ou igual ao número fornecido. Exemplo: Math.ceil(11.123), resultado 12
  • Math.floor(): retorna o maior inteiro menor ou igual ao número fornecido. Exemplo: Math.floor(11.789), resultado 11
  • Intl.NumberFormat: para aplicações que precisam formatar muitos números, considere usar `Intl.NumberFormat`, que oferece melhor performance para operações repetidas. 

Se ficou interessado em como o Javascript funciona e como você pode utilizá-lo melhor, aqui na Alura temos uma Trilha Front-end. Nela, você verá como programar em Javascript, utilizar expressões regulares etc.  

Além disso, se pretende construir uma carreira na área de front-end, recomendamos que conheça a carreira de Desenvolvimento Front-End React, onde você segue um caminho organizado de evolução profissional, direto ao ponto, desde o básico ao avançado. 

Avalie este artigo

Felipe Nascimento
Felipe Nascimento

Desenvolvedor e instrutor na Alura com foco em JavaScript.

Veja outros artigos sobre Front-end