Arredondar um número para 2 casas decimais em JavaScript

Harshit Jindal 12 outubro 2023
  1. Use o método .toFixed() para arredondar um número para 2 casas decimais em JavaScript
  2. Use a função Math.round() para arredondar um número para 2 casas decimais em JavaScript
  3. Use o arredondamento duplo para arredondar um número para 2 casas decimais em JavaScript
  4. Usando a função personalizada para arredondar um número para casas decimais em JavaScript
Arredondar um número para 2 casas decimais em JavaScript

Este tutorial apresenta como arredondar um número para 2 casas decimais em JavaScript.

Use o método .toFixed() para arredondar um número para 2 casas decimais em JavaScript

Aplicamos o método .toFixed() ao número e passamos o número de dígitos após o decimal como argumento.

var numb = 12312214.124124124;
numb = numb.toFixed(2);

Este método não produz resultados precisos em alguns casos e existem métodos melhores do que este. Se um número for arredondado de 1.2, ele mostrará 1.20. Se um número como 2.005 for fornecido, ele retornará 2.000 em vez de 2.01.

Use a função Math.round() para arredondar um número para 2 casas decimais em JavaScript

Pegamos o número e adicionamos um número muito pequeno, Number.EPSILON, para garantir o arredondamento preciso do número. Em seguida, multiplicamos por número com 100 antes de arredondar para extrair apenas os dois dígitos após a casa decimal. Finalmente, dividimos o número por 100 para obter no máximo 2 casas decimais.

var numb = 212421434.533423131231;
var rounded = Math.round((numb + Number.EPSILON) * 100) / 100;
console.log(rounded);

Resultado:

212421434.53

Embora este método melhore em .toFixed(), ainda não é a melhor solução e também não arredondará 1.005 corretamente.

Use o arredondamento duplo para arredondar um número para 2 casas decimais em JavaScript

Neste método, usamos o método .toPrecision() para eliminar os erros de arredondamento de ponto flutuante introduzidos durante os cálculos intermediários no arredondamento único.

function round(num) {
  var m = Number((Math.abs(num) * 100).toPrecision(15));
  return Math.round(m) / 100 * Math.sign(num);
}

console.log(round(1.005));

Resultado:

1.01

Usando a função personalizada para arredondar um número para casas decimais em JavaScript

function roundToTwo(num) {
  return +(Math.round(num + 'e+2') + 'e-2');
}
console.log(roundToTwo(2.005));

Esta função personalizada cuida de todos os casos de canto e arredondamento de decimais como 1.005 é bem tratado por esta função.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Artigo relacionado - JavaScript Number