explode_kewl
explode_kewl

Reputation: 15

Only accept whole numbers, no decimals

I need my code to only accept whole numbers, no decimals and should prompt an error when a decimal gets entered. I don't want a new function , I'm hoping I can just add lines to my function but I don't know what I need to add.

function number_function() {

  number = parseInt(prompt('Enter a positive integer:'));


  if (number < 0) {
    alert('Error! Factorial for negative number does not exist. But I will show you the positive number');
    number = number * -1;
    let n = 1;
    for (i = 1; i <= number; i++) {
      n *= i;
    }
    alert("The factorial of " + number + " is " + n + ".");


  } else if (number === 0) {
    alert("Please enter a number greater than 0");
  } else {
    let n = 1;
    for (i = 1; i <= number; i++) {
      n *= i;
    }
    alert("The factorial of " + number + " is " + n + ".");
  }
}

number_function();

Upvotes: 1

Views: 670

Answers (2)

Rick
Rick

Reputation: 1391

JavaScript provides the built-in function Number.isInteger(n)

Upvotes: 0

firatozcevahir
firatozcevahir

Reputation: 882

You can do this to check if the number has decimals

const val = 10.7 % 1;

if (val !== 0) {
  console.log('has decimals');
} else {
  console.log('has no decimal');
}

Upvotes: 2

Related Questions