Bagikan melalui


BULAT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Mengembalikan nilai numerik, dibulatkan ke panjang atau presisi yang ditentukan.

Konvensi sintaks transact-SQL

Sintaks

ROUND ( numeric_expression , length [ , function ] )

Argumen

numeric_expression

Ekspresi kategori jenis data numerik atau perkiraan numerik yang tepat.

length

Ketepatan yang harus dibulatkan numeric_expression . panjang harus berupa ekspresi tipe tinyint, smallint, atau int. Ketika panjang adalah angka positif, numeric_expression dibulatkan ke jumlah posisi desimal yang ditentukan oleh panjang. Ketika panjang adalah angka negatif, numeric_expression dibulatkan di sisi kiri titik desimal, seperti yang ditentukan oleh panjang.

fungsi

Jenis operasi yang harus dilakukan. fungsi harus kecil, kecil, atau int. Ketika fungsi dihilangkan atau memiliki nilai 0 (default), numeric_expression dibulatkan. Ketika nilai selain 0 yang ditentukan, numeric_expression dipotong.

Tipe pengembalian

Mengembalikan jenis data berikut.

Hasil ekspresi Tipe hasil
kecil int
smallint int
int int
bigint bigint
kategori desimal dan numerik (p, s) desimal(p, s)
kategori uang dan smallmoney uang
float dan kategori nyata float

Keterangan

  • ROUND selalu mengembalikan nilai. Jika panjang negatif dan lebih besar dari jumlah digit sebelum titik desimal, ROUND mengembalikan 0.

    Contoh Hasil
    ROUND(748.58, -4) 0
  • ROUND mengembalikan numeric_expression yang dibulatkan, terlepas dari jenis data, ketika panjang adalah bilangan negatif.

    Contoh Hasil
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) Menghasilkan luapan aritmatika, karena 748.58 default ke desimal(5, 2), yang tidak dapat mengembalikan 1000.00.
  • Untuk membulatkan ke empat digit, ubah jenis data input. Contohnya:

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

    Berikut set hasilnya.

    1000.00
    
  • ROUND Memutuskan ikatan dengan membulatkan setengah dari nol (juga dikenal sebagai pembulatan komersial).

    Contoh Hasil
    ROUND(1.15, 1) 1.2
    ROUND(-1.15, 1) -1,2

Contoh

J. Gunakan ROUND dan perkiraan

Contoh berikut menunjukkan dua ekspresi yang ditunjukkan dengan menggunakan ROUND, digit terakhir selalu merupakan perkiraan.

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

Berikut set hasilnya.

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

B. Menggunakan perkiraan ROUND dan pembulatan

Contoh berikut menunjukkan pembulatan dan perkiraan.

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

Berikut set hasilnya.

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

C. Gunakan ROUND untuk memotong

Contoh berikut menggunakan dua SELECT pernyataan untuk menunjukkan perbedaan antara pembulatan dan pemotongan. Pernyataan pertama membulatkan hasil. Pernyataan kedua memotong hasilnya.

SELECT ROUND(150.75, 0);
GO

Berikut set hasilnya.

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

Berikut set hasilnya.

150.00