How can I test a variable to ascertain if it contains a number, and it is an integer?
e.g.
if (1.589 == integer) // false
if (2 == integer) // true
Any clues?
How can I test a variable to ascertain if it contains a number, and it is an integer?
e.g.
if (1.589 == integer) // false
if (2 == integer) // true
Any clues?
num % 1 === 0
This will convert num
to type Number
first, so any value which can be converted to an integer will pass the test (e.g. '42'
, true
).
If you want to exclude these, additionally check for
typeof num === 'number'
You could also use parseInt()
to do this, ie
parseInt(num) == num
for an untyped check and
parseInt(num) === num
for a typed check.
Note that the tests are not equivalent: Checking via parseInt()
will first convert to String
, so eg true
won't pass the check.
Also note that the untyped check via parseInt()
will handle hexadecimal strings correctly, but will fail for octals (ie numeric strings with leading zero) as these are recognized by parseInt()
but not by Number()
. If you need to handle decimal strings with leading zeros, you'll have to specify the radix argument.
You could use the formal definition of integer:
Math.floor(x) === x
How about this:
if((typeof(no)=='number') && (no.toString().indexOf('.')==-1))
Would this not work:
if (parseInt(number, 10) == number)
{
alert(number + " is an integer.");
}
Can use the function Number.isInteger()
. It also takes care of checking that the value is a number.
For example:
Number.isInteger(3) // true
Number.isInteger(3.1) // false
Number.isInteger('3') // false
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
you could either make use of javas parsing capabilities or as well try out the modulo operator %...
There is a javascript function called isNaN(val) which returns true if val is not a number.
If you want to use val as a number, you need to cast using parseInt() or parseFloat()
EDIT: oops. Corrected the error as mentioned in the comment