Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resultados com vírgula não retornam valor correto

Assim como Lys postou sua dúvida aqui ~> https://cursos.alura.com.br/forum/topico-resultado-nao-retorna-correto-34125

também tive esse problema. O programa entende . (ponto) como separador de casas decimais e nós usamos , (vírgula).

Para resolver foi sugerido o uso de .replace("old", "new") da seguinte forma:

// Código anterior
var gasto = parseFloat(prompt("Informe total gasto com evento").replace(",", ".");
// Código posterior

e ainda fiquei na dúvida se o .replace iria dentro ou fora do parênteses do parseFloat. Na base da tentativa e erro descobri que vai dentro. Então caso alguém esteja ainda com dúvida pra usar o .replace, tentem dessa forma:

// Código anterior
var gasto = parseFloat(prompt("Informe total gasto com evento").replace(",", "."));
// Código posterior

deve funcionar corretamente :D

2 respostas
solução!

Olá Caique, tudo bem?

Isso mesmo! O .replace(",", ".") deve ir dentro do parseFloat, pois ele vai analisar, como uma função que é, todas os argumentos e colocar dentro da var gasto

O parseFloat analisa um argumento string, e retorna um numero de ponto flutuante. Esta função determina se o primeiro caractere na string especificada é um número. Se for, ele analisa a string até chegar ao final do número e retorna o número como um número, não como uma string.

Segue abaixo algumas referências sobre esta função:

Até mais!

Muito obrigado pela resposta, Gabriela! Tinha funcionado "na raça", mas adoro saber o porquê das coisas devidamente explicados. Sua explicação e as referências foram ótimos pra mim. :D