Erro comparacao de números inteiros

14/01/2023

0

Boa noite,

Estou pondo em prática a última aula que fiz de JavaScript e me deparei com um erro em um código que escrevi no VSCode.
Acredito que seja referente a comparação de numeros de dois digitos com números de 1 digito.
Quando comparei o número 9 com o 10, ele volta com o if, ao invés do else if.

Agradeço desde já!


import teste from 'readline-sync'

let num1 = teste.question("Digite um numero: ")
console.log(num1)

let num2 = teste.question("Digite outro numero: ")
console.log(num2)

if (num1 > num2) {
console.log(num1 + " é maior que " + num2)
}

else if (num1 < num2) {
console.log(num1 + " é menor que " + num2)
}

else {
console.log(num1 + " é igual ao " + num2)
}
Misael Almeida

Misael Almeida

Responder

Post mais votado

16/01/2023

O seu script está recebendo um texto, contendo os caracteres 1 e 0, ao invés de um número 10.

Ao fazer a comparação, o texto '9' é maior que o texto '10', em ordem alfabética, já que o 9 aparece no código ASCII após o 1.

Você precisa transformar o texto digitado para o formato numérico.

if (parseInt(num1) > parseInt(num2)) {
  console.log(num1 + " é maior que " + num2)
}


Mas lembre-se que, nem tudo o que o usuário digita é número. Se ele digitar "teste", por exemplo, a função parseInt() falhará.

Arthur Heinrich

Arthur Heinrich
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar