How to check if a number is float or integer?Collection of common programming errors
how to find if a number is float or integer?
1.25 > float
1 > integer
0 > integer
0.25 > float

check a remainder when dividing by 1:
function isInt(n) { return n % 1 === 0; }
If you don’t know that the argument is a number
function isInt(n) { return typeof n === 'number' && n % 1 == 0; }
If you also want to include examples such as 1E308 is a float, and not an integer:
function isInt(n) { return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n); } // 6 characters

Try this.
function isFloat (n) { return n===+n && n!==(n0); } function isInteger (n) { return n===+n && n===(n0); }

Here are efficient functions that check if the value is a number or can be safely converted to a number:
function isNumber(value) { if ((undefined === value)  (null === value)) { return false; } if (typeof value == 'number') { return true; } return !isNaN(value  0); }
And for integers (would return false if the value is a float):
function isInteger(value) { if ((undefined === value)  (null === value)) { return false; } return value % 1 == 0; }
The efficiency here is that parseInt (or parseNumber) are avoided when the value already is a number. Both parsing functions always convert to string first and then attempt to parse that string, which would be a waste if the value already is a number.
Thank you to the other posts here for providing further ideas for optimization!

You can use a simple regular expression:
function isInt(value) { var er = /^[09]+$/; return ( er.test(value) ) ? true : false; }
Or you can use the below functions too, according your needs. They are developed by the PHPJS Project.
is_int()
=> Check if the variable type is Integer and if its content is Integeris_float()
=> Check if the variable type is Float and if its content is Integerctype_digit()
=> Check if the variable type is String and if its content has only decimal digits 
Why not something like this:
var isInt = function(n) { return parseInt(n) === n };

It really depends on what you want to achieve. If you want to “emulate” strongly typed languages then I suggest you not trying. As others mentioned all numbers have the same representation (the same type).
Using something like Claudiu provided:
isInteger( 1.0 )
> truewhich looks fine for common sense, but in something like C you would get
false

As others mentioned, you only have doubles in JS. So how do you define a number being an integer? Just check if the rounded number is equal to itself:
function isInteger(f) { return typeof(f)==="number" && Math.round(f) == f; } function isFloat(f) { return typeof(f)==="number" && !isInteger(f); }

THIS IS FINAL CODE FOR CHECK BOTH INT AND FLOAT
function isInt(n) { if(typeof n == 'number' && Math.Round(n) % 1 == 0) { return true; } else { return false; } }
OR
function isInt(n) { return typeof n == 'number' && Math.Round(n) % 1 == 0; }

function isInteger(n) { return ((typeof n==='number')&&(n%1===0)); } function isFloat(n) { return ((typeof n==='number')&&(n%1!==0)); } function isNumber(n) { return (typeof n==='number'); }

function isInt(n) { return n != "" && !isNaN(n) && Math.round(n) == n; } function isFloat(n){ return n != "" && !isNaN(n) && Math.round(n) != n; }
works for all cases.

Another method is:
function isFloat(float) { return /\./.test(float.toString()); }
Might not be as efficient as the others but another method all the same.

!!(24%1) // false !!(24.2%1) // true

For integers I use this
function integer_or_null(value) { if ((undefined === value)  (null === value)) { return null; } if(value % 1 != 0) { return null; } return value; }

It really doesn’t have to be so complicated. The numeric value of an integer’s parseFloat() and parseInt() equivalents will be the same. Thus you can do like so:
function isInt(value){ return (parseFloat(value) == parseInt(value)) && !isNaN(value); }
Then
if (isInt(x)) // do work
This will also allow for string checks and thus is not strict. If want a strong type solution (aka, wont work with strings):
function is_int(value){ return !isNaN(parseInt(value * 1) }

In java script all the numbers are
internally 64 bit floating point
, same as double in java. There are no diffrent types in javascript, all are represented by typenumber
. Hence you wil l not be able make ainstanceof
check. However u can use the above solutions given to find out if it is a fractional number. designers of java script felt with a single type they can avoid numerous type cast errors. 
float
values consists of.
, so here we can useindexOf
method.function isInt(number){ if(number.toString().indexOf(".") > 1) return false; // it is float else return true; //it is integer }
The above code is only applicable if the given variable is
number
. if you are not sure about the type of variable , then do the following before the above code://as suggested by @kennebec function isNumber(number){ return typeof n === 'number' }

Any Float number with a zero decimal part (e.g. 1.0, 12.00, 0.0) are implicitly cast to Integer, so it is not possible to check if they are Float or not.

Here’s what I use for integers:
Math.ceil(parseFloat(val)) === val
Short, nice ðŸ™‚ Works all the time. This is what David Flanagan suggests if I’m not mistaken.

parseInt(yourNumber)=== parseFloat(yourNumber)
Originally posted 20131109 21:01:54.