Useful shortcuts for vi editor

Saturday, 2 April 2011

T-SQL’de decimal/numeric ve float veri tipleri karşılaştırması

T-SQL sıkça kullanılan decimal, numeric ve float veri tiplerini biraz tokuşturmak istiyorum. J

Öncelikle şunu belirtelim decimal ile numeric arasında hiçbir fark yok yalnızca ismi farklıdır. J

Float ile decimal/numeric arasında şöyle bir fark bulunmakta; decimal/numeric veri tipleri tanımlandığı noktadan sonraki basamak değerine (scale) göre tam sonucunu verir. Decimal tipinde örneğin; decimal (5,2) ile decimal (5,4) tanımları birbirinden farklıdır. Float tipinde bu ayrım yapılamamaktadır (scale tanımı yok.). Decimal/Numeric tipindeki bir değeri float tipine çevirdiğimizde doğal olarak veri kaybı yaşayabiliriz.

Bu veri kaybının istenmeyen alanlarından biri de, para ile ilgili yaşanan hesaplamalar olabilir. O yüzden veri tabanında veri tiplerini oluştururken para için decimal, money veya smallmoney tipleri kullanılması önerilir. Bunun sebebi daha önce bahsettiğimiz noktadan sonraki basamak konusudur.

Aşağıdaki ekran görüntüsünden anlaşılacağı gibi; float tipi, money tipine göre noktadan sonra basamak destek vermediği için kitap fiyatı money tipine çevrilirken noktadan sonra 
2.basamakta olan 5 sayısı, 6’ya yuvarlanmıştır.


Konuyla ilgili burayı inceleyebilirsiniz.

Sağlıcakla kalın. J