Bir sayının float
veya integer
olduğunu nasıl bulabilirim?
1.25 --> float
1 --> integer
0 --> integer
0.25 --> float
Bir değerin, kesirli kısmı olmayan ve tam bir tamsayı olarak temsil edilebilecek boyut sınırları içinde olan ilkel bir sayı değeri olup olmadığını test etmek için bu işlevleri deneyin.
function isFloat(n) {
return n === +n && n !== (n|0);
}
function isInteger(n) {
return n === +n && n === (n|0);
}
Diğerlerinin de belirttiği gibi, JS'de yalnızca çiftler vardır. Peki bir sayının tamsayı olduğunu nasıl tanımlarsınız? Sadece yuvarlanan sayının kendisine eşit olup olmadığını kontrol edin:
function isInteger(f) {
return typeof(f)==="number" && Math.round(f) == f;
}
function isFloat(f) { return typeof(f)==="number" && !isInteger(f); }
Bu gerçekten ne elde etmek istediğinize bağlıdır. Eğer güçlü tipli dilleri taklit etmek istiyorsanız o zaman denememenizi öneririm. Diğerlerinin de belirttiği gibi tüm sayılar aynı gösterime (aynı tipe) sahiptir.
Claudiu'nun* sağladığı gibi bir şey kullanarak:
isInteger( 1.0 )
-> true
Bu sağduyu için iyi görünüyor, ancak C gibi bir şeyde false
alırsınız