HOWTO · JavaScript

Arredondar um número para 2 casas decimais em JavaScript

Este tutorial ensina como arredondar um número para no máximo `2` casas decimais em JavaScript.

Nesta página

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.