JavaScript Sayısal İşlemler
JavaScript sayı, number veri türü, sayı sistemi, sayı yuvarlama, sayı kontrolü, en küçük – en büyük sayıyı bulma, matematik fonksiyonları gibi sayısal işlemler yer alıyor.
JavaScript sayıları ifade etmek için veri türü olarak sayı (number) kullanılır.
number veri türü
JavaScript number veri türünde sayılar ondalıklı veya ondalıksız olarak yazılabilir.
var x = 1453; // Ondalıksız yazım
var y = 14.53; // Ondalıklı yazım
Büyük ve küçük sayılar bilimsel veya üstsel gösterimle yazılabilir.
<script>
var x = 1453e5; // 145300000
var y = 1453e-5; // 0.01453
alert(y);
</script>
Sayı sınırı
JavaScript number veri türünde 15 haneli ondalıksız sayı yazılabilir.
<script>
var x = 999999999999999; // 999999999999999
var y = 9999999999999999; // 10000000000000000
alert(y);
</script>
JavaScript number veri türünde 17 haneli ondalıklı sayı yazılabilir.
Ancak kayan nokta aritmetiği 100% doğru değildir.
<script>
var x = 0.2 + 0.1; // 0.30000000000000004
alert(x);
</script>
Bu sorunu çözmek için aşağıdaki yöntem kullanılabilir.
<script>
var x = (0.2 * 10 + 0.1 * 10) / 10; // 0.3
alert(x);
</script>
Sayı sistemleri
JavaScript sayı değeri 0x ile başlıyorsa sayıyı onaltılık sayı sistemi olarak tanımlar.
<script>
var x = 0xFF; // 255
alert(x);
</script>
NOT: JavaScript sayı değerinin önüne 0 eklenirse bazı JavaScript sürümleri sayıyı sekizlik sayı sistemi olarak tanımlayacaktır.
JavaScript sayıları varsayılan olarak onluk sayı sistemi olarak tanımlar.
Sayıları onaltılık, sekizlik ve ikilik sayı sistemine dönüştürmek için toString fonksiyonu kullanılır.
<script>
var x = 1453;
alert(x.toString(16)); // 5ad
alert(x.toString(8)); // 2655
alert(x.toString(2)); // 10110101101
</script>
Infinity
JavaScript ile sonsuzluk-sınır değerini ifade etmek için Infinity veya -Infinity anahtar kelimesi kullanılır.
Aşağıdaki örnek JavaScript ile yazılabilen sayı sınır değerine kadar çarpma işlemi yapacaktır.
<script>
var x = 2;
while(x != Infinity) {
x = x * x;
alert(x);
}
</script>
Bir sayının 0’a bölünmesi Infinity veya –Infinity değeri döndürür.
<script>
var x = 10 / 0; // Infinity
var y = -10 / 0; // -Infinity
alert(x);
alert(y);
</script>
JavaScript Infinity anahtar kelimesinin veri türü number’dır.
<script>
alert(typeof Infinity);
</script>
NaN – Not a Number
JavaScript ile bir değişkenin sayı olup olmadığını NaN anahtar kelimesiyle öğrenebiliriz.
Sayısal bir değer sayısal olmayan bir değerle işlem yapılırsa JavaScript NaN sonucunu verir.
<script>
alert(100 / "Yusuf");
</script>
Metin veri türü içindeki değer sayı olursa sonuç sayı değeri olacaktır.
<script>
alert(100 / "10");
</script>
Değişkenin sayı olup olmadığını bulmak için isNaN fonksiyonu kullanılır.
Örnekte sonuç bir sayı olmadığından dolayı true-doğru sonucunu verir.
<script>
var x = 100 / "Yusuf";
alert(isNaN(x));
</script>
JavaScript NaN anahtar kelimesini veri türü number’dır.
<script>
alert(typeof NaN);
</script>
JavaScript sayı fonksiyonları, sayılar üzerinde işlem yapmamızı sağlar.
Sayısal fonksiyonlar ve özellikler
Temel veri türleri (3.14 veya 1453 gibi) sayısal fonksiyon ve özelliklere sahip değildir.
Ancak JavaScript sayısal fonksiyon ve özellikleri temel veri türleri içinde kullanabilmemizi sağlar.
toString
toString fonksiyonu sayıyı metin veri türüne çevirir.
JavaScript içindeki tüm sayısal değerler (sabit değerler, değişken değerler ve işlemler) için kullanılabilir.
<script>
var xSayisi = 1453;
alert(xSayisi.toString());
alert((1453).toString());
alert((1400 + 53).toString());
</script>
toExponential
toExponential fonksiyonu sayının virgülden sonraki rakam sayısını belirtmek ve bilimsel olarak yazmak için kullanılır.
<script>
var xSayisi = 14.53;
alert(xSayisi.toExponential(2));
alert(xSayisi.toExponential(4));
alert(xSayisi.toExponential(6));
</script>
toFixed
toFixed fonksiyonu virgülden sonraki rakam sayısını belirtmek için kullanılır.
<script>
var xSayisi = 14.53;
alert(xSayisi.toFixed(0));
alert(xSayisi.toFixed(2));
alert(xSayisi.toFixed(4));
alert(xSayisi.toFixed(6));
</script>
toPrecision
toPrecision rakam sayısını belirtmek için kullanılır.
<script>
var xSayisi = 14.53;
alert(xSayisi.toPrecision());
alert(xSayisi.toPrecision(2));
alert(xSayisi.toPrecision(4));
alert(xSayisi.toPrecision(6));
</script>
Değişkenleri sayıya çevirme
Sayısal olmayan değerleri sayıya çevirmek için 3 fonksiyon kullanılır.
- Number() fonksiyonu
- parseInt() fonksiyonu
- parseFloat() fonksiyonu
Bu fonksiyonlar genel JavaScript fonksiyonlarıdır.
Number
Number fonksiyonu aldığı değeri sayı türüne çevirmek için kullanılır.
<script>
var xSayisi = "14.53";
alert(Number(xSayisi));
alert(Number(true));
alert(Number(false));
alert(Number(new Date()));
alert(Number(" 10"));
alert(Number("10 "));
alert(Number("10 20"));
</script>
Number fonksiyonu tarih değerini 1.1.1970’den başlayarak milisaniye olarak verir.
parseInt
parseInt fonksiyonu aldığı değeri sayı türüne çevirmek için kullanılır.
Sayılar arasında boşluk varsa ilk sayıyı verir.
<script>
alert(parseInt("10"));
alert(parseInt("14.53"));
alert(parseInt("10 20 30"));
alert(parseInt("10 sene"));
alert(parseInt("sene 10"));
</script>
Aldığı değeri sayı türüne çeviremezse NaN değerini verir.
parseFloat
parseFloat fonksiyonu aldığı değeri sayı türüne çevirmek için kullanılır.
Sayılar arasında boşluk varsa ilk sayıyı verir.
<script>
alert(parseFloat("10"));
alert(parseFloat("14.53"));
alert(parseFloat("10 20 30"));
alert(parseFloat("10 sene"));
alert(parseFloat("sene 10"));
</script>
Aldığı değeri sayı türüne çeviremezse NaN değerini verir.
Number veri türü özellikleri
Özellik | Açıklması |
---|---|
MAX_VALUE | JavaScript ile kullanılabilen en büyük sayıyı verir. |
MIN_VALUE | JavaScript ile kullanılabilen en büyük sayıyı verir. |
NEGATIVE_INFINITY | JavaScript negatif sınır taşmasını temsil eder. |
NaN | JavaScript sayı olmadığını belirten anahtar kelimeyi temsil eder |
POSITIVE_INFINITY | JavaScript pozitif sınır taşmasını temsil eder. |
Kullanımı;
<script>
alert(Number.MAX_VALUE);
</script>
Özellikler sadece Number ön eki ile kullanılır.
Aşağıdaki kullanım tanımsız (undefined) değerini verecektir.
<script>
var x = 1453;
alert(x.MAX_VALUE);
</script>
JavaScript Matematik Fonksiyonları
JavaScript matematik fonksiyonları sayılar üzerinde matematiksel işlem yapmamızı sağlar.
<script>
alert(Math.PI); // 3.141592653589793
</script>
Math.round
Math.round fonksiyonu parametre olarak verilen ondalıklı sayıya en yakında tam sayıyı değerini verir.
<script>
alert(Math.round(4.7)); // 5
alert(Math.round(4.4)); // 4
</script>
Math.pow()
Math.pow(x, y) fonksiyonu x değerini y değeri kadar çarpar.
<script>
alert(Math.pow(4, 2)); // 16
</script>
Math.sqrt()
Math.sqrt fonksiyonu parametre olarak verilen sayının karekökünü verir.
<script>
alert(Math.sqrt(144)); // 12
</script>
Math.abs()
Math.abs fonksiyonu parametre olarak verilen sayının mutlak değerini verir.
<script>
alert(Math.abs(-5.44)); // 5.44
</script>
Math.ceil()
Math.ceil fonksiyonu parametre olarak verilen ondalıklı sayıyı yukarı yuvarlar.
<script>
alert(Math.ceil(4.1)); // 5
</script>
Math.floor()
Math.floor fonksiyonu parametre olarak verilen ondalıklı sayıyı aşağı yuvarlar.
<script>
alert(Math.floor(4.9)); // 4
</script>
Math.min()
Math.min fonksiyonu parametre olarak verilen sayılar arasında en küçük sayıyı verir.
<script>
alert(Math.min(0, 30, 359, 100, -1, -100)); // -100
</script>
Math.max()
Math.max fonksiyonu parametre olarak verilen sayılar arasında en büyük sayıyı verir.
<script>
alert(Math.max(0, 30, 359, 100, -1, -100)); // 359
</script>
Math.random()
Math.random fonksiyonu 0 ile 1 arasında rastgele sayı üretir.
<script>
alert(Math.random());
</script>
JavaScript Math özellikleri
Math sınıfı matematiksel işlemler için çeşitli sabitlerine sahiptir.
<script>
alert(Math.E);
alert(Math.PI);
alert(Math.SQRT2);
alert(Math.SQRT1_2);
alert(Math.LN2);
alert(Math.LN10);
alert(Math.LOG2E);
alert(Math.LOG10E);
</script>
JavaScript Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.