Di SQL Server, T-SQL ROUND()
fungsi memungkinkan Anda membulatkan angka ke panjang atau presisi tertentu.
Anda memberikan angka sebagai argumen, serta panjang angka yang Anda inginkan untuk dibulatkan. Fungsi ini juga menerima argumen ketiga opsional yang memungkinkan Anda menentukan apakah angka dibulatkan atau dipotong.
Sintaks
Sintaksnya seperti ini:
ROUND ( numeric_expression , length [ ,function ] )
Di mana argumen memiliki definisi berikut:
- ekspresi_numerik
- Merupakan ekspresi dari kategori tipe data numerik atau perkiraan numerik yang tepat, kecuali untuk bit tipe data.
- panjang
- Apakah ketepatan numeric_expression adalah untuk dibulatkan. Argumen ini harus berupa ekspresi tipe tinyint , kecil , atau int . Bila itu bilangan positif, numeric_expression dibulatkan ke jumlah posisi desimal yang ditentukan oleh argumen ini. Jika bilangan negatif, numeric_expression dibulatkan di sisi kiri titik desimal, seperti yang ditentukan oleh argumen ini.
- fungsi
- Apakah jenis operasi yang akan dilakukan. Ini harus kecil , kecil , atau int . Ketika argumen ini dihilangkan atau memiliki nilai 0 (default), numeric_expression dibulatkan. Ketika nilai selain 0 ditentukan, numeric_expression terpotong.
Contoh 1 – Penggunaan Dasar
Berikut adalah contoh dasar untuk mendemonstrasikan cara kerja fungsi ini.
SELECT ROUND(1.49, 1) Result;
Hasil:
+----------+ | Result | |----------| | 1.50 | +----------+
Dalam hal ini jumlahnya dibulatkan.
Contoh 2 – Tempat Nol Desimal
Jika kita menyetel argumen kedua ke nol, inilah yang terjadi:
SELECT ROUND(1.49, 0) Result;
Hasil:
+----------+ | Result | |----------| | 1.00 | +----------+
Ini karena kami menetapkan nol bagian pecahan untuk membulatkan angka.
Dan inilah yang terjadi jika saya mengubah angka awal menjadi 1,50:
SELECT ROUND(1.50, 0) Result;
Hasil:
+----------+ | Result | |----------| | 2.00 | +----------+
Contoh 3 – Lebih Banyak Tempat Desimal
Berikut adalah contoh di mana angka yang akan dibulatkan berisi lebih banyak tempat desimal.
SELECT ROUND(1.234, 2) Result;
Hasil:
+----------+ | Result | |----------| | 1.230 | +----------+
Dan inilah yang terjadi ketika saya menambah angka terakhir menjadi 5:
SELECT ROUND(1.235, 2) Result;
Hasil:
+----------+ | Result | |----------| | 1.240 | +----------+
Tentu saja, kita bisa menggunakan lebih banyak tempat desimal. Misalnya, kita bisa memangkas banyak desimal ke bawah.
SELECT ROUND(1.23456789123456789, 8) Result;
Hasil:
+---------------------+ | Result | |---------------------| | 1.23456789000000000 | +---------------------+
Contoh 4 – Pemotongan (yaitu menggunakan argumen ketiga)
Seperti yang disebutkan, kami dapat memberikan argumen ketiga untuk menentukan apakah hasilnya terpotong atau hanya dibulatkan. Contoh sebelumnya semuanya dibulatkan karena kami tidak menentukan argumen ketiga. Ketika kita menghilangkan argumen ketiga, nilai 0 digunakan (yang berarti membulatkan hasil). Jika kami memberikan nilai selain 0, hasilnya akan terpotong.
SELECT ROUND(1.236, 2) 'Rounded (by default)', ROUND(1.236, 2, 0) 'Rounded (explicitly)', ROUND(1.236, 2, 1) 'Truncated';
Hasil:
+------------------------+------------------------+-------------+ | Rounded (by default) | Rounded (explicitly) | Truncated | |------------------------+------------------------+-------------| | 1.240 | 1.240 | 1.230 | +------------------------+------------------------+-------------+
Contoh 5 – Menggunakan Nilai Negatif untuk Argumen Kedua
Berikut cara menggunakan nilai negatif pada argumen kedua untuk membuat bagian non-fraksional dibulatkan menjadi nol.
SELECT ROUND(123.456, -1) Result;
Hasil:
+----------+ | Result | |----------| | 120.000 | +----------+
Dan begini cara pembulatannya jika kita menambah 3
ke 5
atau lebih.
SELECT ROUND(125.456, -1) Result;
Hasil:
+----------+ | Result | |----------| | 130.000 | +----------+
Anda dapat melakukan ini meskipun angka tersebut tidak mengandung bagian pecahan.
SELECT ROUND(125, -1) Result;
Hasil:
+----------+ | Result | |----------| | 130 | +----------+
Contoh 6 – Pembulatan Bilangan Negatif vs Bilangan Positif
Seperti yang terlihat pada contoh sebelumnya, saat menggunakan bilangan positif, nilai dengan bagian pecahan .5 atau lebih besar dibulatkan ke atas ke bilangan bulat berikutnya.
Namun, saat menggunakan angka negatif, nilai tersebut dibulatkan bawah .
SELECT ROUND(1.50, 0) Positive, ROUND(-1.50, 0) Negative;
Hasil:
+------------+------------+ | Positive | Negative | |------------+------------| | 2.00 | -2.00 | +------------+------------+