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

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.
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:
decimalpara representar números simples.currencyque diz respeito ao formato monetário e que vai indicar a moeda que vai ser utilizada.percentpara 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), resultado12. - Math.floor(): retorna o maior inteiro menor ou igual ao número fornecido. Exemplo:
Math.floor(11.789), resultado11. - 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.







