Number - Sayı

circle-exclamation

Bir sayısal büyüklük tırnak içerisine alınmadan doğrudan yazılırsa number tipinde olur. Bu şekilde matematiksel işlemlerde (toplama, çıkarma vb.) kullanılabilirler. Tırnak içerisinde yazılırsa string olur ve matematiksel işlemlerde kullanılamazlar. Örnek.

let tamSayi = 2023;
let ondalikliSayi = 20.23;

Javascript tamsayılar ve ondalıklı sayılar için number değişkenini kullanır. Farklı tipler olarak ele almaz. Number veri tipi güvenli olarak (2531)-(2^{53}-1) ile (2531)(2^{53}-1) arasında değerler alabilir. Daha büyük veya küçük değerler de alabilir fakat karşılaştırmalarda yanlış sonuçlar üretir. Örneğin 255+12^{55}+1 ile 255+22^{55}+2 birbirlerine eşit mi sorusuna doğru cevabını alırsınız. Değer aralıklarını .MAX_VALUE ve .MIN_VALUE özellikleri ile görüntüleyin.

.MAX_VALUE | .MIN_VALUE | .MAX_SAFE_INTEGER | .MIN_SAFE_INTEGER

alert('Number max değeri: ' + Number.MAX_VALUE);
alert('Number min değeri: ' + Number.MIN_VALUE);

Güvenli tamsayı değer aralıklarını .MAX_SAFE_INTEGER ve .MIN_SAFE_INTEGER özellikleri ile görüntüleyin.

alert(Number.MAX_SAFE_INTEGER); // 9007199254740991
alert(Number.MIN_SAFE_INTEGER); // -9007199254740991

Javascript HexaDecimal (16'lı), Octal (8'li) ve Binary (2'li) sayı sistemlerini kabul eder.

  • HexaDecimal - 16'lı Sayı Sistemi

    • Sayılar 0-9 arasındaki rakamlar ve A-F arasındaki harflerle temsil edilir.

    • 0-9 arası rakamlar kendileri olarak, 10:A, 11:B, 12:C, 13:D, 14:E, 15:F olarak temsil edilir.

    • HexaDecimal sayılar '0x' ile başlayarak yazılır. Örnek: 0xFF

    • HTML Renk kodları bu sistemi kullanır ve gösterimi hashtag sembolü ile başlar. Örnek: #FFFFF

  • Octal - 8'li Sayı Sistemi

    • Sayılar 0-7 arasındaki rakamlarla temsil edilir.

    • Octal sayılar '0o' ile başlayarak yazılır. Örnek: 0o377

  • Binary - 2'li Sayı Sistemi

    • Sayılar 0 ve 1 ile temsil edilir.

    • Binary sayılar '0b' ile başlayarak yazılır. Örnek: 0b11111111

Javascript'te çok sıfırlı sayıları yazarken 'e' harfi kullanılabilir. Örnek olarak:

Number tipinde iki tane özel değer vardır. Bunlar Infinity ve NaN'dır.

Infinity Değeri

Sonsuz sayıları temsil eder. En büyük sayıdır. Javascript'in standardından daha büyük bir sayı yazarsanız veya bir sayıyı sıfıra bölerseniz Infinity değerini elde edersiniz. Hata almazsınız. Örnek.

Infinity değeri bir veri tipi değildir. Number veri tipinin özel bir değeridir. Şunları deneyip sonucu görünüz.

NaN Değeri (Not a Number)

Matematiksel işlemi hatalı olan değişkenlerin değeridir. Örneğin bir harf rakama bölünemez. Bu durumda değeri NaN olur. Örnek.

Bazı NaN değeri üreten işlemler. Deneyiniz.

IEEE-754 Sayı Hataları

Birçok dilde kullanılan IEEE-754 standardı sayıları bellekte binary olarak tutar. Bunun sonucunda bazı yuvarlamaları otomatik olarak yapar ve hatalı sonuç döndürür. Örnek.

IEEE-754 standardı ondalık kısmı en fazla 16 basamağa kadar doğru verir. Ondalığın 17. basamağında yukarı doğru yuvarlamalar yapar. IEEE-754 varsayılan olarak 1 işaret digit'i, 52 tamsayı basamak digit'i ve 11 ondalık basamak digit'i tutar. Dolayısıyla binary olarak 52 basamaktan daha fazla olan bir tamsayı yazarsanız bunda da belirli bir düzende yukarı doğru yuvarlamalar yapar.

Aşağıda büyük bir tamsayının 2'lik tabandaki binary karşılığı verilmiştir. Sayı binary olarak 54 digit'tir. Yani 54 basamak uzunluğundadır.

9999999999999999=(100011100001101111001001101111110000001111111111111111)29999999999999999 = (100011100001101111001001101111110000001111111111111111)_2

Bu standardın 1 digit'i işaret olarak tuttuğunu ifade etmiştik. Bu durum sıfır (0) sayısı için de geçerlidir. Yani sıfır -0 ve +0 olarak iki sayı vardır. Sıfır sayısı iki türlü de binary olarak tamamen sıfırlardan oluştuğu için bu durum bir hataya sebep olmaz. Fakat -0 ve +0 standart olarak kullanılabilir. Aynı durum Infinity için de geçerlidir. Yani -Infinity ve +Infinity olarak kullanılabilir.

Last updated