Di MariaDB, ROUND()
adalah fungsi numerik bawaan yang membulatkan argumennya ke sejumlah tempat desimal tertentu.
Sintaks
Fungsi tersebut dapat digunakan dengan dua cara berikut:
ROUND(X)
ROUND(X,D)
Dimana X
adalah nilai yang akan dibulatkan, dan D
adalah argumen opsional yang menentukan jumlah tempat desimal untuk membulatkannya.
Contoh
Ini contohnya:
SELECT ROUND(7.5);
Hasil:
+------------+ | ROUND(7.5) | +------------+ | 8 | +------------+
Melewati nilai negatif menghasilkan hasil berikut:
SELECT ROUND(-7.5);
Hasil:
+-------------+ | ROUND(-7.5) | +-------------+ | -8 | +-------------+
Tentukan Tempat Desimal
Secara default, ROUND()
fungsi membulatkan nilai ke nol tempat desimal. Kita dapat menentukan jumlah tempat desimal untuk membulatkan nilainya dengan meneruskan argumen kedua.
Contoh:
SELECT ROUND(7.5164, 2);
Hasil:
+------------------+ | ROUND(7.5164, 2) | +------------------+ | 7.52 | +------------------+
Tempat Desimal Negatif
Argumen kedua bisa menjadi nilai negatif jika diperlukan. Melewati nilai negatif menyebabkan digit ke kiri dari tempat desimal menjadi nol.
Contoh:
SELECT ROUND(3724.51, -2);
Hasil:
+--------------------+ | ROUND(3724.51, -2) | +--------------------+ | 3700 | +--------------------+
Dibandingkan dengan FLOOR()
ROUND()
fungsinya berbeda dengan FLOOR()
fungsi. ROUND()
fungsi membulatkan angka ke atas dalam beberapa kasus dan ke bawah pada kasus lainnya. FLOOR()
fungsi, di sisi lain, selalu mengembalikan nilai integer terbesar tidak lebih besar dari argumennya.
Berikut perbandingan untuk menunjukkan perbedaan ini:
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Hasil:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Juga, FLOOR()
tidak menerima argumen kedua seperti ROUND()
tidak.
ROUND()
juga berbeda dengan TRUNCATE()
fungsi, yang hanya memotong angka ke tempat desimal tertentu, tanpa pembulatan apa pun.
Argumen Non-Numerik
Inilah yang terjadi ketika kami memberikan argumen non-numerik:
SELECT ROUND('Ten');
Hasil:
+--------------+ | ROUND('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.028 sec)
Mari kita periksa peringatannya:
SHOW WARNINGS;
Hasil:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Argumen Tidak Ada
Memanggil ROUND()
tanpa argumen menghasilkan kesalahan:
SELECT ROUND();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ROUND'