Derinlemesine Sayısal Değerler (Tamsayılar (Byte, Short, Integer, Long), Küsüratlılar (Float, Double, Decimal) )

 


Sayılar tam sayılar ve küsüratlı sayılar olmak üzere ikiye ayrılır. Array olarak kullanılmakça Ram üzerinde Stack alanında tutulurlar ve hızlı çalışırlar. Herhangibir sayı tutmak için hepsi kullanılabilir, dikkatli olunması gereken konu performanstır. Sınırları belli olan(plakalar, ülkeler, şubeler vs...) yada sıralama yapılması gerekmeyen(tc kimlik no, forma numarası vs...) gibi senaryolarda iyi düşünülmelidir.

Genel olarak yapılan hatalar;
  • Sayı olan heryerde int kullanmak :  Aşırı büyük sayılarda hata verir, ufak sayıları tutmak için gereksiz yer kaplar. Data yada analiz incelenip ona seçilmelidir.
  • Float ve double'ı parasal işlemler için kullanmak : Decimal tipi bu iş içindir.
  • TC Kimlik numarası için long kullanmak : Kimlik numarası için sıralama çoğunlukla gerekmemektedir. Bu tarz büyük sayı olan ama sıralama gerektirmeyen sayılar için string kullanılabilir.
  • Fatura/Sipariş no için int kullanmak : Bu tarz sayılar işinize bağlı hızlıca artabilir. Özellikle sipariş no gibi alanlar için Long daha iyidir.
  • Http response durumu kodlarında int kullanmak : 100 ile 600 arası sayılardır. Short bu işi görür. Dto içinde "HttpStatusCode" enum'ı kullanılabilir.

Byte : 'System.Byte' tipindedir. 0/255 yada -128/127(sbyte) arası değerleri saklar. 1 byte(8 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır. Ufak sayıları tutmak için uygundur, ram'i yormaz. 

Short : 'System.Int16' tipindedir. -32k/32k yada 0/65k(ushort) arası değerleri saklar. 2 byte(16 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır. Int'ten küçük sayıları tutmak için uygundur, ram'i yormaz. 

Int : 'System.Int32' tipindedir. Çok büyük değerleri saklar. 4 byte(32 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır. Kapsaydığı değer aralığı geniş olduğu için her işe uygundur ama performans'a dikkat edilmelidir.

Long : 'System.Int64' tipindedir. Aşırı büyük değerleri saklar. 8 byte(64 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır.

Float : 'System.Single' tipindedir. Küsüratlı ve hassasiyet/kesinlik isteyen değerleri saklar. 4 byte(32 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır.

Double : 'System.Double' tipindedir. Küsüratlı ve büyük değerleri saklar. 8 byte(64 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır.

Decimal : 'System.Decimal' tipindedir. Finansal değerleri saklar. 16 byte(128 bit) kadar yer kaplar. Stack bölümünde saklanır, hızlıdır.

Yorumlar