MariaDB memiliki FLOOR()
fungsi dan TRUNCATE()
fungsi yang dapat mengembalikan hasil yang sama atau hasil yang berbeda, tergantung pada nilai pasti dari argumennya.
Di bawah ini adalah ikhtisar singkat tentang perbedaan antara FLOOR()
dan TRUNCATE()
di MariaDB.
Perbedaan
Berikut perbedaan antara masing-masing fungsi secara singkat:
FLOOR()
mengembalikan nilai integer terbesar yang tidak lebih besar dari argumennya.TRUNCATE()
memotong argumennya ke sejumlah tempat desimal tertentu.
Sintaks
Pertama, berikut adalah sintaks dari setiap fungsi.
FLOOR()
Sintaks untuk FLOOR()
seperti ini:
FLOOR(X)
Ini mengembalikan nilai integer terbesar tidak lebih besar dari X
.
TRUNCATE()
Sintaks untuk TRUNCATE()
seperti ini:
TRUNCATE(X,D)
TRUNCATE()
mengembalikan nomor X
, dipotong menjadi D
tempat desimal.
Contoh
Berikut perbandingan untuk menunjukkan perbedaan antara FLOOR()
dan TRUNCATE()
:
SELECT
FLOOR(-3.6789),
TRUNCATE(-3.6789, 0);
Hasil:
+----------------+----------------------+ | FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) | +----------------+----------------------+ | -4 | -3 | +----------------+----------------------+
Dalam hal ini, bilangan adalah nilai negatif dan hasil dari setiap fungsi berbeda.
FLOOR()
mengembalikan bilangan bulat terbesar (-4
) nilainya tidak lebih besar dari argumennya.TRUNCATE()
fungsi di sisi lain, cukup potong angka di tempat desimal yang ditentukan.
Hasil yang Sama
Kedua fungsi terkadang dapat mengembalikan hasil yang sama. Itu semua tergantung pada nilai argumen yang diteruskan.
Jika kita mengubah angka menjadi nilai positif, kedua fungsi mengembalikan hasil yang sama:
SELECT
FLOOR(3.6789),
TRUNCATE(3.6789, 0);
Hasil:
+---------------+---------------------+ | FLOOR(3.6789) | TRUNCATE(3.6789, 0) | +---------------+---------------------+ | 3 | 3 | +---------------+---------------------+
Argumen Kedua
Perbedaan nyata lainnya antara kedua fungsi tersebut adalah TRUNCATE()
menerima/membutuhkan argumen kedua. Ini dapat menghasilkan hasil yang mengandung bagian pecahan.
FLOOR()
namun, hanya mengembalikan bilangan bulat, jadi tidak ada bagian pecahan yang dikembalikan.
Contoh
SELECT
FLOOR(3.6789),
TRUNCATE(3.6789, 2);
Hasil:
+---------------+---------------------+ | FLOOR(3.6789) | TRUNCATE(3.6789, 2) | +---------------+---------------------+ | 3 | 3.67 | +---------------+---------------------+
ROUND()
Fungsi
Kedua fungsi tersebut berbeda dengan ROUND()
fungsi, yang membulatkan argumennya ke sejumlah tempat desimal tertentu.