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)
}
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
Curtir tópico
+ 0
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.
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á.
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)