Arredondamento para duas casas decimais em JavaScript: a solução correta
Olá a todos! Me deparei com uma tarefa aparentemente simples: preciso arredondar números para duas casas decimais, mas apenas quando necessário. Ou seja, se o número for 10.5 — deixar como está, e 10.456 — arredondar para 10.46.\n\nO problema é que os métodos padrão do JavaScript se comportam de forma estranha. Por exemplo, `toFixed(2)` retorna uma string, não um número, e pode dar resultados inesperados devido a imprecisões de números de ponto flutuante.\n\n```javascript\n// Problema com toFixed\nconsole.log(1.005.toFixed(2)); // Exibe "1.00" em vez do esperado "1.01"\nconsole.log(0.1 + 0.2); // 0.30000000000000004\n```\n\nTentei usar `Math.round(num * 100) / 100`, mas isso também falha:\n\n```javascript\n// Problema com Math.round\nconsole.log(Math.round(1.005 * 100) / 100); // 1 em vez de 1.01\nconsole.log(Math.round(1.255 * 100) / 100); // 1.25 em vez de 1.26\n```\n\nAlguém pode me dizer como arredondar números para duas casas decimais de forma correta e confiável, levando em conta todas as peculiaridades do JavaScript? Preciso que o resultado
No answers yet.
Faça login para deixar uma resposta
Blogs
Registro em aplicações TypeScript: melhores práticas