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

MariaDB ROUND() vs TRUNCATE()

MariaDB memiliki ROUND() fungsi dan TRUNCATE() fungsi yang dapat mengembalikan hasil yang sama atau hasil yang berbeda, tergantung pada nilai pasti dari argumennya.

Seperti yang disarankan oleh nama fungsi, ROUND() putaran nomor dan TRUNCATE() memotong nomor. Memotong angka hanya memotongnya tanpa melakukan pembulatan apa pun.

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

Perbedaan

Berikut perbedaan antara masing-masing fungsi secara singkat:

  • ROUND() putaran argumennya ke sejumlah tempat desimal tertentu. Hal ini terkadang menyebabkan hasil dibulatkan, dan terkadang tidak.
  • TRUNCATE() cukup memotong argumennya ke sejumlah tempat desimal tertentu. Tidak ada pembulatan yang terjadi.

Sintaks &Definisi

Pertama, berikut adalah sintaks dan definisi dari setiap 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 .

TRUNCATE()

TRUNCATE() fungsi dapat digunakan hanya dengan satu sintaks:

TRUNCATE(X,D)

TRUNCATE() mengembalikan nomor X , dipotong menjadi D tempat desimal.

Contoh

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

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

Hasil:

+---------------------+------------------+
| TRUNCATE(3.6789, 2) | ROUND(3.6789, 2) |
+---------------------+------------------+
|                3.67 |             3.68 |
+---------------------+------------------+

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

TRUNCATE() fungsi di sisi lain, cukup dipotong nomor di tempat desimal yang ditentukan. TRUNCATE() tidak melakukan pembulatan. Itu hanya memotong nomor di tempat yang ditentukan.

Kedua fungsi menerima nilai negatif untuk tempat desimal, dan logika masing-masing yang sama berlaku:

SELECT 
    TRUNCATE(36789, -2),
    ROUND(36789, -2);

Hasil:

+---------------------+------------------+
| TRUNCATE(36789, -2) | ROUND(36789, -2) |
+---------------------+------------------+
|               36700 |            36800 |
+---------------------+------------------+

Hasil yang Sama

Kedua fungsi terkadang dapat mengembalikan hasil yang sama. Itu semua tergantung pada nilai argumen yang diteruskan.

Berikut ini contoh di mana keduanya mengembalikan hasil yang sama:

SELECT 
    TRUNCATE(3.6749, 2),
    ROUND(3.6749, 2);

Hasil:

+---------------------+------------------+
| TRUNCATE(3.6749, 2) | ROUND(3.6749, 2) |
+---------------------+------------------+
|                3.67 |             3.67 |
+---------------------+------------------+

Dalam hal ini, ROUND() tidak membulatkan angka ke atas, karena angka berikutnya (4 ) kurang dari 5 . Oleh karena itu, kedua hasil tersebut sama.

FLOOR() Fungsi

Kedua fungsi tersebut berbeda dengan FLOOR() fungsi, yang mengembalikan nilai integer terbesar tidak lebih besar dari argumennya. FLOOR() tidak menerima argumen kedua seperti ROUND() dan TRUNCATE() do (toh hanya mengembalikan bilangan bulat).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Cara Mendapatkan Kumpulan Database di MariaDB

  2. 3 Cara Mendapatkan Koleksi yang Tersedia di MariaDB

  3. Membandingkan Pemulihan Point-in-Time Amazon RDS dengan ClusterControl

  4. 4 Cara Menemukan Baris yang Mengandung Huruf Kecil di MariaDB

  5. Cara Menambahkan AM/PM ke Nilai Waktu atau Datetime di MariaDB