ROUND (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

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

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

ROUND ( numeric_expression , length [ ,function ] )  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

numeric_expression
Adalah ekspresi dari kategori jenis data numerik atau perkiraan numerik yang tepat, kecuali untuk jenis data bit .

panjang
Apakah presisi yang numeric_expression akan dibulatkan. 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
Adalah jenis operasi yang akan dilakukan. fungsi harus kecil, kecil, atau int. Ketika fungsi dihilangkan atau memiliki nilai 0 (default), numeric_expression dibulatkan. Saat nilai selain 0 ditentukan, numeric_expression dipotong.

Jenis 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
kategori float dan riil 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, jika panjangnya adalah angka 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 atas hingga 4 digit, ubah jenis data input. Contohnya:

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

Contoh

A. Menggunakan 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 adalah tataan hasil.

----------- -----------  
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 adalah hasil yang ditetapkan.

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

C. Menggunakan 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  
SELECT ROUND(150.75, 0, 1);  
GO  

Berikut adalah hasil yang ditetapkan.

--------  
151.00  
  
(1 row(s) affected)  
  
--------  
150.00  
  
(1 row(s) affected)  

Lihat juga

LANGIT-LANGIT (SQL Bertransaksi)
Tipe Data (Transact-SQL)
Ekspresi (SQL Bertransaksi)
LANTAI (SQL Bertransaksi)
Fungsi Matematika (SQL Transact)