MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB ROUND() vs LANTAI()

MariaDB memiliki ROUND() fungsi dan FLOOR() fungsi yang serupa dalam beberapa hal, tetapi sangat berbeda dalam hal lain.

Di bawah ini adalah ikhtisar singkat tentang perbedaan antara ROUND() dan FLOOR() di MariaDB.

Perbedaan

Berikut perbedaan antara masing-masing fungsi secara singkat:

  • ROUND() membulatkan argumennya ke sejumlah tempat desimal tertentu.
  • FLOOR() mengembalikan nilai integer terbesar yang tidak lebih besar dari argumennya.

Sintaks

Berikut adalah sintaks dan definisi dari masing-masing fungsi.

ROUND()

ROUND() fungsi dapat digunakan dengan dua cara berikut:

ROUND(X)
ROUND(X,D)

ROUND() membulatkan argumen X ke D tempat desimal. Algoritma pembulatan tergantung pada tipe data X .

FLOOR()

FLOOR() fungsi dapat digunakan hanya dengan satu sintaks:

FLOOR(X)

FLOOR() mengembalikan nilai integer terbesar yang tidak lebih besar dari X .

Contoh Perbedaannya

Berikut perbandingan untuk menunjukkan perbedaan antara ROUND() dan FLOOR() :

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Hasil:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Dalam hal ini, ROUND() fungsi membulatkan angka ke atas, karena angka berikutnya (8 ) lebih besar dari 5 .

FLOOR() fungsi di sisi lain, cukup mengembalikan nilai integer terbesar tidak lebih besar dari argumen (3.6789 ).

Argumen Kedua

Perbedaan lainnya adalah ROUND() menerima argumen kedua opsional, sedangkan FLOOR() tidak.

Argumen kedua memungkinkan Anda untuk menentukan berapa banyak tempat desimal untuk membulatkan angka.

Contoh

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789, 2);

Hasil:

+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
|             3 |             3.68 |
+---------------+------------------+

Contoh Hasil yang Sama

Fungsi-fungsi ini terkadang dapat mengembalikan hasil yang sama. Itu semua tergantung pada nilai argumen yang diteruskan.

Misalnya, jika kita menempatkan tanda negatif di depan nilai, kita mendapatkan hasil yang sama:

SELECT 
    FLOOR(-3.6789),
    ROUND(-3.6789);

Hasil:

+----------------+----------------+
| FLOOR(-3.6789) | ROUND(-3.6789) |
+----------------+----------------+
|             -4 |             -4 |
+----------------+----------------+

Itu tidak berarti bahwa nilai negatif selalu mengembalikan hasil yang sama – tidak. Itu semua tergantung pada nilai aktual yang diberikan dan pembulatan yang dilakukan oleh ROUND() .

Berikut ini contoh di mana nilai negatif menghasilkan hasil yang berbeda:

SELECT 
    FLOOR(-3.3739),
    ROUND(-3.3739);

Hasil:

+----------------+----------------+
| FLOOR(-3.3739) | ROUND(-3.3739) |
+----------------+----------------+
|             -4 |             -3 |
+----------------+----------------+

Dan inilah contoh di mana nilai positif mengembalikan hasil yang sama:

SELECT 
    FLOOR(3.3739),
    ROUND(3.3739);

Hasil:

+---------------+---------------+
| FLOOR(3.3739) | ROUND(3.3739) |
+---------------+---------------+
|             3 |             3 |
+---------------+---------------+

The TRUNCATE() Fungsi

Kedua fungsi tersebut berbeda dengan TRUNCATE() fungsi, yang hanya memotong nilai ke sejumlah tempat desimal tertentu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menghubungkan ke AWS MySQL / MariaDB RDS atau Database EC2 dari MySQL WorkBench

  2. Mengamankan Cadangan MySQL:Panduan

  3. Bagaimana CONVERT_TZ() Bekerja di MariaDB

  4. Cara Mengurangi Tahun dari Tanggal di MariaDB

  5. Bagaimana GREATEST() Bekerja di MariaDB