Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ao lidar com valores numéricos em aplicações financeiras ou de exibição de dados, muitas vezes é necessário exibir números com até duas casas decimais, mas somente quando há uma diferença relevante. Por exemplo, números inteiros não devem ser alterados, enquanto valores com mais de duas casas decimais devem ser arredondados para facilitar a leitura e evitar confusão na apresentação.
Em JavaScript, o comportamento padrão de arredondamento pode gerar resultados indesejados, especialmente com números que possuem mais de duas casas decimais. Como fazer esse arredondamento condicional, ou seja, arredondar apenas quando há mais de duas casas decimais?
O método mais comum de arredondamento é usando Math.round(), multiplicando o número por 100, arredondando e dividindo de volta. Contudo, esse método sempre arredonda, mesmo para números inteiros ou com menos de duas casas decimais. Assim, é preciso uma lógica adicional para verificar se o número realmente precisa de arredondamento.
Outro ponto importante é a precisão de números de ponto flutuante em JavaScript, que pode gerar resultados inesperados, como 1.005 não arredondando para 1.01. Para contornar isso, recomenda-se usar Number.EPSILON na operação de arredondamento. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
A estratégia envolve três passos:
1. Verificar quantas casas decimais o número possui.
2. Se o número tiver mais de duas casas decimais, realizar o arredondamento usando Number.EPSILON.
3. Caso contrário, retornar o número original.
Para fazer essa verificação, podemos converter o número para string e contar os dígitos após a vírgula.
function arredondaCondicional(valor) {
const partes = valor.toString().split('.'). if (partes.length === 2 && partes[1].length > 2) {
return Math.round((valor + Number.EPSILON) * 100) / 100. }
return valor. }
Este código verifica se há mais de duas casas decimais e, se for o caso, realiza o arredondamento com precisão melhorada. Caso contrário, mantém o valor original. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Controlar o arredondamento condicional em JavaScript ajuda a manter a fidelidade na apresentação de dados, evitando mudanças desnecessárias em números pequenos ou inteiros. Essa abordagem simples, porém eficiente, pode ser integrada em várias camadas do sistema para garantir consistência na exibição de valores numéricos, especialmente em dashboards, relatórios ou interfaces de usuário que demandam precisão visual. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
A adoção de uma lógica assim evita o excesso de arredondamentos que confundem o usuário e mantém a integridade dos dados exibidos, sem complicar o código ou prejudicar a performance. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. A decisão fica mais saudável quando o time consegue medir o impacto depois.
Carregando comentários...