PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Round() Bekerja di PostgreSQL

Di PostgreSQL, round() fungsi yang digunakan untuk pembulatan suatu bilangan.

Fungsi ini dapat bekerja dengan salah satu dari dua cara, tergantung bagaimana Anda menggunakannya. Anda dapat membulatkannya ke bilangan bulat terdekat, atau ke sejumlah tempat desimal tertentu.

Ini ditentukan oleh jumlah argumen yang Anda berikan ke fungsi saat Anda memanggilnya.

Sintaks

round() fungsi dapat digunakan dengan salah satu cara berikut:

round(dp or numeric)
round(v numeric, s int)

Sintaks pertama membulatkan angka ke bilangan bulat terdekat. dp menunjukkan double precision .

Sintaks kedua membulatkannya ke sejumlah tempat desimal yang ditentukan. Dalam hal ini, v adalah nomornya, dan s adalah jumlah tempat desimal.

Jenis kembalian untuk fungsi ini sama dengan jenis masukan.

Contoh Sintaks Pertama

Berikut adalah contoh yang menggunakan sintaks pertama.

SELECT round(13.50);

Hasil:

14

Dalam hal ini pecahan detik adalah 50 dan angkanya dibulatkan ke atas ke bilangan bulat terdekat.

Jika pecahan detik kurang dari 50, itu akan dibulatkan ke bawah, dan hasilnya adalah 13.

Ini contohnya.

SELECT round(13.49);

Hasil:

13

Contoh Sintaks Kedua

Berikut adalah contoh yang menggunakan sintaks kedua.

SELECT round(13.50, 1);

Hasil:

13.5

Dalam hal ini, tidak ada yang dibulatkan dan nol dijatuhkan begitu saja. Dalam kasus seperti itu, ia mengembalikan hasil yang sama yang akan kita lihat jika kita menggunakan trunc() fungsi.

Namun, jika kita sedikit menyesuaikan pecahan detik, kita akan melihat bahwa hasilnya dibulatkan.

SELECT 
  round(13.45, 1) AS "13.45",
  round(13.44, 1) AS "13.44";

Hasil:

13.45 | 13.44
-------+-------
13.5 | 13.4

Namun, penting untuk dicatat bahwa hasilnya sepenuhnya bergantung pada berapa banyak detik pecahan yang Anda tentukan dalam argumen kedua.

Ini contoh yang sama lagi, tetapi dengan dua tempat desimal yang ditentukan.

SELECT 
  round(13.45, 2) AS "13.45",
  round(13.44, 2) AS "13.44";

Hasil:

13.45 | 13.44
-------+-------
13.45 | 13.44

Dalam hal ini tidak ada yang dibulatkan, karena saya menentukan jumlah pasti tempat desimal yang saya berikan.

Menambahkan Detik Pecahan

Tidak ada yang menghentikan Anda untuk menentukan lebih banyak pecahan detik daripada angka aslinya.

SELECT 
  round(13.45, 3) AS "13.45",
  round(13.44, 3) AS "13.44";

Hasil:

13.45 | 13.44
--------+--------
13.450 | 13.440

Dalam hal ini hanya menambahkan nol ke bagian kanan pecahan detik.

Berikut adalah contoh untuk menentukan jumlah tempat desimal ketika angka aslinya tidak menyertakan pecahan detik.

SELECT round(12, 3);

Hasil:

12.000

Tempat Desimal Negatif

Inilah yang terjadi jika argumen kedua bernilai negatif.

SELECT round(789, -2);

Hasil:

800

Berikut beberapa lainnya.

SELECT 
  round(789, -2),
  round(789, -1),
  round(489, -2),
  round(489, -1),
  round(489, -3);

Hasil:

round | round | round | round | round
-------+-------+-------+-------+-------
800 | 790 | 500 | 490 | 0

Round() vs Trunc()

Dalam beberapa kasus, round() fungsi mungkin tampak bekerja dengan cara yang mirip dengan trunc() . Tapi mereka sangat berbeda.

round() fungsi membulatkan angka. Angka dibulatkan ke bilangan bulat terdekat atau ke jumlah tempat desimal yang ditentukan (tergantung apakah Anda memberikan satu argumen atau dua argumen).

trunc() fungsi di sisi lain hanya memotong angka menuju nol atau ke tempat desimal yang ditentukan. Tidak ada pembulatan yang dilakukan.

Berikut ini contoh untuk menunjukkan perbedaannya.

SELECT 
  round(1.49, 1),
  trunc(1.49, 1);

Hasil:

round | trunc
-------+-------
1.5 | 1.4

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemantauan PostgreSQL Proaktif (Sudut Pengembang Studio/Penasihat)

  2. Mengubah Database pengembangan Django dari SQLite default ke PostgreSQL

  3. Perilaku NOT LIKE dengan nilai NULL

  4. memulai postgresql dan pgadmin di windows tanpa instalasi

  5. Praktik Terbaik Replikasi PostgreSQL - Bagian 2