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

Duvida com a " , "

var vitorias=parseInt(prompt("entre com o número de vitorias"));
var empates = parseInt(prompt("entre com o número de empates"));

var pontos = vitorias * 3 + empates;

document.write("os pontos do seu time são " + pontos);

quero entender o que acontece no primeiro "prompt" se eu colocar ' 3, 2 ' e no segundo eu colocar ' 1, 2 ' ; O resultado que aparece no Google é 10. Alguém pode me explicar por que só é considerado o primeiro numero?

3 respostas

Olá Gustavo, como está sendo utilizado parseInt na captura do prompt qualquer número com casa decimal será arrendodado para inteiro, desta forma mesmo inserindo 3,2 ele considerará 3 e 1,2 será considerado 1, então 3 * 3 + 1 = 10. Se você deseja que sejam consideradas as casas decimais, utilize parseFloat ao invés de parseInt.

solução!

Oi Gustavo, como você está usando a função parseInt() ele vai converter 3,2 e 1,2 para números inteiros - respectivamente 3 e 1.

Portanto, ao calcular o valor de 'pontos', temos:

3 * 3 + 1 = 10

Se você quiser o valor decimal, precisa usar o parseFloat(). E para ter o resultado esperado ainda precisa do replace() para trocar a vírgula por ponto no texto de entrada:

numero_vitorias = prompt("entre com o número de vitorias");
vitorias = parseFloat(numero_vitorias.replace(',', '.');

espero ter ajudado

Parabéns Thais pela explicação mais didática.