Como descobrir que um número é "float" ou "integer"?
1.25 --> float
1 --> integer
0 --> integer
0.25 --> float
Tente estas funções para testar se um valor é um valor primitivo numérico que não tem parte fracionária e está dentro dos limites de tamanho do que pode ser representado como um número inteiro exato.
function isFloat(n) {
return n === +n && n !== (n|0);
}
function isInteger(n) {
return n === +n && n === (n|0);
}
Como outros mencionaram, você só tem duplas no JS. Então, como se define um número como um número inteiro? Basta verificar se o número arredondado é igual a si mesmo:
function isInteger(f) {
return typeof(f)==="number" && Math.round(f) == f;
}
function isFloat(f) { return typeof(f)==="number" && !isInteger(f); }
Depende realmente do que você quer alcançar. Se você quer " emule" digite fortemente as línguas, então sugiro que você não tente. Como outros mencionaram, todos os números têm a mesma representação (o mesmo tipo).
Usando algo como Claudiu fornecido:
isInteger( 1.0 )-> verdadeiro
o que parece bom para o senso comum, mas em algo como C você ficaria "falso".