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

Qual a diferença??

Boa noite

esse foi o codigo feito durante as aulas (perfeito da certinho)!!!!!

esse abaixo é o codigo que estava editando e ele so funciona se colocar a escrita parseInt, caso contratio da concatenação.

***queria uma resposta clara de qual a diferença dos dois exercicios que acabou me obrigando a usar esse parseInt. *

10 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Estou com a mesma dúvida de quando usar ou não o parseInt

Boa Tarde, o comando parseInt tem como função converter a string para um tipo inteiro. E quando você deve usar? Quando é necessário realizar operações aritméticas com as variáveis que estão sendo inseridas através do prompt.

Mas para um melhor resultado nesse exercício você poderia utilizar o parseFloat, pois o parseInt só é possível obter valores do tipo inteiro, já o parseFloat compreende os números com casas decimais, no caso da altura...

Precisando estou a disposição!

mas porque no caso do exemplo feito em aula com o professor, o resultado nao precisa do parseint? (sendo que ele tambem pede os valores por prompt.)

Porque o resultado ele é de acordo com o que você esta tratando. Exemplo, se você somar 2 inteiros o resultado vai ser um inteiro. Se você somar dois float o resultado vai ser um float, por isso ele não faz o parser para exibir o resultado.

desculpa nao fez sentido, vou tentar outras formas de descobrir a resposta

obrigado

descobri.

Quando a função é de adição ou subtração ele vai concatenar (a nos ser que voce coloque o codigo parseint ou parsefloat). Quando a função e de multiplicação ou divisao nao precisa colocar esse codigo e só fazer igual é mostrado em aula.

Isso, ele concatena por ser tipo String.. E string é uma cadeia de caracteres, ai não consegue fazer operações aritméticas.

Olá, estava com a mesma dúvida e sua resposta me ajudou. Então resolvi testar e acabei em dúvida de novo. De fato quando a operação é de soma (e vc não força o parseInt() ) ele faz a concatenação dos números, e quando é multiplicação ou divisão ele realiza o calculo. Porém eu resolvi misturar os dois (soma e multiplicação), e o resultado me deixou confuso.

    function geraConcatenacao(num1, num2){
        return (num1 + num2) *2;
    }
    function geraResultado(num1, num2){
        return (num1 * num2) +2;
    }

    var num1 = prompt("Digite um número");
    var num2 = prompt("Digite outro número");

    mostra("Concatenando fica " + geraConcatenacao(num1, num2));
    mostra("O resultado é " + geraResultado(num1, num2));

Escolhendo os números 3** e **4 no meu programa o resultado foi o seguinte: "Concatenando fica 68" "O resultado é 14"

Ou seja, na geraConcatenacao() ele primeiro concatenou 3 e 4, depois multiplicou por 2. E na geraResultado() ele primeiro multiplicou 3 e 4, mas depois ele não concatenou com o 2, ele realmente somou. Afinal quando é que ele adivinha quando é número e quando não é? Isso me deixou meio confuso... Se alguém puder me esclarecer sobre isso agradeço!

O JavaScript não é bobo, ele primeiro pergunta se é uma String (se estiver entre " "), se é um numero (1 , 2 ,3, 4....), ou se é uma variavel.. O 2 ali vc colocou como numero então ele não concatenou e sim somou com a multiplicação.