04/11/2020 - Como arredondar as casas decimais em JavaScript
Como desenvolvedores fatalmente um dia precisaremos arredondar números em JavaScript. É normal procurar um como fazer na Internet.
Entretanto até procedimentos simples podem ter erros de precisão.
Uma forma de arredondar um número decimal para 2 casas decimais, por exemplo, usando JavaScript, é usando Math.round(decimal * 100) / 100, mesmo assim o método acaba esbarrando em limitações de precisão da linguagem.
Esta forma é um padrão e bastante eficaz para fazer arredondamento de decimal, porém é necessário saber que este é um método pouco confiável.
Uma função proposta para arredondar números decimais em Javascript
Você poderá procurar e encontrar na internet funções de uma linha com este propósito, mas infelizmente elas não serão precisas. Isso é se devido à natureza binária que os números decimais possuem.
O padrão utilizado pelo JavaScript para trabalhar com ponto flutuante é o IEE 745 . Quando se realiza uma operação aritmética em dois números float ou double, é realizado um arredondamento (seja para mais ou para menos) na última casa (bit), onde termina o espaço que foi alocado em memória para representar o número.
Isso explica o motivo de em JavaScript ocorrerem resultados estranhos para operações básicas, exemplo:
Na função nativa do Javascript de arredondamento Math.round ou no método toFixed também vamos esbarrar com o mesmo inconveniente ao tentar arredondar para X casas decimais.
Confira abaixo uma função que funciona com precisão, trazida pelo usuário do Stack Overflow A Kunin