SQL'de yuvarlama sorunu

SQL üç yuvarlama işlevi vardır.

Geleneksel yuvarlama

"ROUND ()" SQL fonksiyonu mevcut bir değeri alır ve belirtilen ondalık basamağa yuvarlar. Biçim aşağıdaki gibidir:

YUVARLAK ([değer], [n], [1]))

Burada "[value]" bir ondalık değerdir ve "[n]", değerin yuvarlanması gereken basamak sayısıdır. Bu işlev 0, 5 veya daha fazla olan değerleri ve 0, 49 veya daha düşük değerlerini yuvarlar. "0" değerini seçmek tüm değerlere yuvarlar. "-1" değerinin seçilmesi en yakın 10'un katına yuvarlanır. "ROUND ()", "[1]" işlevinin üçüncü parametresi, sıfır olmayan bir değer seçildiğinde, belirtilen ondalık basamak sayısıyla sayıyı keser. Beklenmedik yuvarlama problemlerinin önemli bir kaynağı, üçüncü parametrenin tipografik hatalarla sabitlenmesidir, bu sayede sonuç numarası yuvarlatılmış yerine kesilir.

ZEMİN VE TAVAN

SQL, değerlerin aşağı doğru yuvarlanmasını en yakın tam sayıya ve "CEILING ()" işlevine en yakın değere yuvarlamak için "FLOOR ()" işlevini kullanır. İki işlev tamsayı değerlerini döndürür. Belirli bir ondalık basamaklı bir kayan veri türü kullanıldığında bile, bu işlevler ondalık basamaktan sonra sıfır olan bir değer döndürür.

Önerilen verilerin türleri

SQL'de yuvarlama hatalarının ortaya çıkmasının en olası nedeni, "ROUND ()" işlevindeki sayısal ifade için beklenmedik bir veri türünün kullanılması veya "FLOOR ()" veya "TAVANLAMA ()) kullanımının kullanılmasıdır. msgstr "bir tamsayı yerine ondalık veri türü almayı beklediğinizde. SQL işleviniz beklenmedik yuvarlama sonuçları veriyorsa, numarayı gösteren "CAST ()" işlevinin "tamsayı", "ondalık", "para" veya "küçük harfli" veri türüne sahip olduğundan emin olun. "Ondalık" veri türü, toplamda sadece 38 haneyle sınırlıdır; bu, bilimsel topluluk dışında birkaç kişiyi etkileyen bir sınırlamadır.

Diğer veri türleri

Sayısal değerleri döndüren ve "ROUND ()" işleviyle ilgili sorunlara neden olabilen iki tür veri vardır. SQL'de, SQL'in çoğu sürümünde çok küçük kesirleri depolamak için kullanılan "gerçek" ve "float" sayısal türleridir ve belirtilen veri türünde son ondalık basamak bulunur. Bazı SQL uygulamaları, sıfıra, aşağıya veya konvansiyonel olarak sıfırdır. "Gerçek" veya "float" türlerini kullanan bir SQL veritabanında veri aldığınızda, bunları "ondalık" veri türlerine dönüştürmek için "CAST ()" veya "CONVERT ()" işlevlerini kullanın.