Yanıtlar:
DECIMAL(18,0)
ondalık noktadan sonra 0 basamağa izin verir.
DECIMAL(18,4)
Bunun yerine iyi bir şey yapması gereken bir şey kullanın !
Bu , 4 ondalık noktadan sonra (ve ondalık noktadan 14 önce) toplam 18 basamak verir .
decimal(4,2)
Ondalık noktadan önce 2 ve ondalık noktadan sonra 2 basamak izin verir. "4.5" sorunsuz saklanabilir - ve sayısal olarak, "4.5" ve "4.50" aynıdır
varchar
ondalık değeri saklamak için bir kullanmayın !!
Kullanmanız gereken aşağıdaki gibidir:
DECIMAL(m,a)
m
ondalık sayınızın sahip olabileceği toplam basamak sayısıdır.
a
ondalık noktadan sonraki maksimum basamak sayısıdır.
http://www.tsqltutorials.com/datatypes.php tüm veri türleri için açıklamalara sahiptir.
Ayarları Decimal
, hassasiyeti ve ölçeği veya normal dilde, bir sayının kaç basamağa sahip olabileceği ve ondalık noktanın sağında kaç basamak olmasını istediğinizdir.
Yani PI
içine koyarsanız Decimal(18,0)
olarak kaydedilir 3
?
Eğer PI
içine koyarsanız Decimal(18,2)
olarak kaydedilir 3.14
?
Eğer PI
içine koymak eğer Decimal(18,10)
olarak kaydedilir 3.1415926535
.
Çoğu zaman, sql ondalık türünde en az depolama (5 bayt) alan ondalık (9,2) kullanıyorum.
Precision => Depolama baytları
Değerlerin çoğu için yeterince büyük olan 0'dan 9 999 999,99'a (ondalık noktanın arkasında 7 basamaklı + 2 basamaklı = toplam 9 basamaklı) depolayabilir.
MySQL DB decimal(4,2)
sadece 4 basamak girilmesine izin verir. Gördüğünüz gibi decimal(4,2)
, ondalık noktadan sonra tutmak için toplam iki basamak girebileceğiniz anlamına gelir.
Bu nedenle, MySQL veritabanına 100.0 girerseniz, "Sütun için Aralık Dışı Değeri" gibi bir hata gösterir.
Yani, sadece bu aralığa girebilirsiniz: 00.00 ila 99.99.
Diğer cevaplar doğrudur. Örneklerinizin varsayılması, istediğiniz şeylerin tamamını yansıtır DECIMAL(3, 1)
. Veya, DECIMAL(14, 1)
toplam 14 hane izin verir. Neyin yeterli olduğunu düşünmek sizin işiniz.