Neste artigo você vai aprender a como realizar um cálculo aceitando vírgula para separar casas decimais em JavaScript, de uma maneira muito simples!

Cálculos aceitando vírgula para separar casas decimais capa

Conteúdo também disponível em vídeo:

Fala programador(a), beleza? Bora aprender a realizar cálculos com vírgula em JS!

A premissa básica é que o JS funciona com o padrão de números americano, ou seja, ao contrário do nosso

Então não devemos mudar o comportamento padrão dele, e sim se adaptar a maneira que ele calcula

A forma mais fácil de fazer isso é converter o número com vírgula para float, realizar a operação e depois voltar para o formato que desejamos novamente

Até por que as vezes não controlamos como recebemos os dados, eles podem vir formatados do back-end no padrão brasileiro, então esta conversão é a melhor pŕatica

Vamos ver um exemplo prático:

var a = "12,13";
var b = "48,12"
var n1 = parseFloat(a.replace(',', '.'));
var n2 = parseFloat(b.replace(',', '.'));
var resultado = n1 + n2;
console.log(resultado); // 60.25

Utilizamos o replace para trocar o ponto pela vírgula, e o método parseFloat para transformar esta string em um flot

Veja que conseguimos realizar o cálculo normalmente, supondo que os números venham com vírgula no lugar de ponto e em string

Imprimimos o resultado final que é a operação matemática que vamos realizar com os números convertidos

Agora caso você precise voltar a formatação original é só fazer o processo inverso, converter para string e trocar o ponto pela vírgula

Conclusão

Neste artigo vimos como realizar um cálculo aceitando vírgula para separar casas decimais

Não mudamos o comportamento padrão de JavaScript, e sim convertemos o nosso valor para o que a linguagem usa

Assim obtemos o valor final da operação e depois podemos converter novamente para o nosso formato

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

2 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Isis T. Passos

Muito obrigado pela ajuda!!! Descobri este site hoje mas com certeza irei utiliza-lo mais vezes, ótimo trabalho.

Alekis

Essa função não da pra ser usava se o número estiver na casa dos mil
Por exemplo 1.528,35
O resultado seria “1.528”