Aracılığıyla paylaş


ROUND (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Belirlenen uzunluk veya hassasiyete yuvarlanmış sayısal bir değer döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

ROUND ( numeric_expression , length [ , function ] )

Arguments

numeric_expression

Tam sayısal veya yaklaşık sayısal veri türü kategorisinin bir ifadesi .

length

numeric_expression ne kadar hassas yapılacağı gösteriliyor. uzunluk , tinyint, küçükint veya int tiplerinin bir ifadesi olmalıdır. Uzunluk pozitif sayı ise, numeric_expressionuzunlukla belirtilen ondalık konum sayısına yuvarlanır. Uzunluk negatif bir sayı ise, numeric_expression ondalık noktanın sol tarafında uzunlukla belirtildiği şekilde yuvarlanır.

fonksiyon

Yapılacak operasyon türü. fonksiyontinyint, smallint veya int olmalıdır. Fonksiyon atıldığında veya (varsayılan) değeri 0 olduğunda, numeric_expression yuvarlanır. Başka 0 bir değer belirtildiğinde, numeric_expression kesintiye çıkar.

Dönüş türleri

Aşağıdaki veri türlerini döndürür.

İfade sonucu Dönüş türü
tinyint int
smallint int
int int
bigint bigint
ondalık ve sayısal kategori (p, s) ondalık (p, s)
para ve küçük para kategorileri para
Float ve gerçek kategori float

Açıklamalar

  • ROUND Her zaman bir değer döndürür. Eğer uzunluk negatif ve ondalık noktadan önceki basamak sayısından büyükse, ROUND döner0.

    Example Result
    ROUND(748.58, -4) 0
  • ROUND Uzunluk negatif sayı olduğunda, veri türü ne olursa olsun yuvarlatılmış bir numeric_expression döndürür.

    Örnekler Result
    ROUND(748.58, -1) 750,00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) Aritmetik taşma ile sonuçlanır, çünkü 748.58 varsayılan olarak ondalık (5, 2) olur ve bu da döndüremez 1000.00.
  • Dört haneli yuvarlamak için giridin veri türünü değiştirin. Örneğin:

    SELECT ROUND(CAST (748.58 AS DECIMAL (6, 2)), -3);
    

    Sonuç kümesi aşağıdadır.

    1000.00
    
  • ROUND Sıfırdan yarısını yuvarlayarak (ticari yuvarlama olarak da bilinir) eşitliği bozar.

    Örnekler Result
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1.2

Örnekler

A. ROUND ve tahminler kullanın

Aşağıdaki örnek, son rakamın her zaman bir tahmin olduğunu gösteren ROUNDiki ifade gösterir.

SELECT ROUND(123.9994, 3),
       ROUND(123.9995, 3);
GO

Sonuç kümesi aşağıdadır.

----------- -----------
123.9990    124.0000

B. ROUND ve yuvarlama yaklaşımları kullanın

Aşağıdaki örnek yuvarlamayı ve yaklaştırmaları göstermektedir.

SELECT ROUND(123.4545, 2),
       ROUND(123.45, -2);

Sonuç kümesi aşağıdadır.

----------  ----------
123.4500    100.00

C. ROUND ile kesinti yapın

Aşağıdaki örnek, yuvarlama ile kesinti arasındaki farkı göstermek için iki SELECT ifadeyi kullanır. İlk ifade sonucu yuvarlar. İkinci ifade sonucu kısaltıyor.

SELECT ROUND(150.75, 0);
GO

Sonuç kümesi aşağıdadır.

151.00
SELECT ROUND(150.75, 0, 1);
GO

Sonuç kümesi aşağıdadır.

150.00