Arredondamento de números para duas casas decimais em JavaScript: como fazer corretamente?
Olá a todos! Sou novo em JavaScript e me deparei com um problema de arredondamento de números. Preciso exibir preços no carrinho de uma loja online, e quero que eles sempre apareçam com no máximo duas casas decimais. Mas se o número for inteiro (por exemplo, 10), quero mostrar apenas "10", sem casas decimais.
Tentei usar `toFixed(2)`, mas ele sempre adiciona zeros: `(10).toFixed(2)` retorna `"10.00"`, e eu preciso de `"10"`. Tentei `Math.round(num * 100) / 100` – funciona, mas às vezes dá resultados estranhos devido à imprecisão dos números de ponto flutuante. Por exemplo, `Math.round(1.005 * 100) / 100` retorna `1`, em vez de `1.01`, como eu esperava.
Alguém pode me indicar como arredondar corretamente um número para duas casas decimais, mas sem mostrar zeros extras quando não forem necessários? Preciso de uma solução confiável que funcione com qualquer número, incluindo negativos e valores muito pequenos (por exemplo, `0.0001` deve se tornar `0`, e não `0.00`).
Exemplos do que quero obter:
- `10
No answers yet.
Faça login para deixar uma resposta
Blogs