SQL Academy · Pelajaran

Pembundaran dan Pemenggalan

ROUND, CEIL, FLOOR dan TRUNC.

Pelajaran 2 daripada 413 langkah

Pembundaran dan Pemenggalan ialah pelajaran SQL Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran SQL Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

Mengapa Pembundaran Penting

Apabila bekerja dengan nombor dalam SQL, anda sering mendapat hasil dengan banyak tempat perpuluhan. Sebagai contoh, membahagi 10 dengan 3 menghasilkan 3.3333333...

SQL menyediakan fungsi terbina dalam untuk mengawal bilangan tempat perpuluhan yang dipaparkan atau disimpan: ROUND, CEIL, FLOOR dan TRUNC. Fungsi ini penting untuk mempersembahkan angka kewangan, ukuran dan statistik yang kemas.

SELECT 10.0 / 3.0 AS raw_result;

ROUND: Penggunaan Asas

Fungsi ROUND() membundarkan nombor kepada bilangan tempat perpuluhan yang ditentukan. Fungsi ini mengikut peraturan pembundaran standard: digit 5 dan ke atas dibundarkan ke atas, manakala digit di bawah 5 dibundarkan ke bawah.

Sintaksnya ialah: ROUND(number, decimal_places). Jika anda mengabaikan argumen kedua, nombor dibundarkan kepada nombor bulat terdekat.

SELECT
  ROUND(3.14159, 2) AS two_decimals,
  ROUND(3.14159, 0) AS zero_decimals,
  ROUND(3.14159)    AS no_arg;

ROUND dengan Kedudukan Negatif

Ciri ROUND() yang kurang diketahui ialah anda boleh memberikan nombor negatif sebagai argumen kedua. Ini membundarkan nombor di sebelah kiri titik perpuluhan — berguna untuk membundarkan kepada puluh, ratus atau ribu terdekat.

Sebagai contoh, ROUND(1567, -2) membundarkan kepada ratus terdekat dan menghasilkan 1600.

SELECT
  ROUND(1567.89, -1)  AS nearest_ten,
  ROUND(1567.89, -2)  AS nearest_hundred,
  ROUND(1567.89, -3)  AS nearest_thousand;

CEIL: Sentiasa Membundar ke Atas

CEIL() (juga ditulis sebagai CEILING() dalam sesetengah pangkalan data) sentiasa membundarkan nombor ke atas kepada nombor bulat terdekat, tanpa mengira bahagian perpuluhannya.

Fungsi ini berguna apabila anda perlu memastikan nilai tidak pernah kurang daripada minimum — contohnya, ketika mengira bilangan halaman yang diperlukan untuk memaparkan sekumpulan hasil.

SELECT
  CEIL(4.1)   AS ceil_4_1,
  CEIL(4.9)   AS ceil_4_9,
  CEIL(-4.1)  AS ceil_neg_4_1,
  CEIL(-4.9)  AS ceil_neg_4_9;

FLOOR: Sentiasa Membundar ke Bawah

FLOOR() sentiasa membundarkan nombor ke bawah kepada nombor bulat terdekat, tanpa mengira bahagian perpuluhannya.

Perhatikan bahawa bagi nombor negatif, FLOOR membundarkan menjauhi sifar — FLOOR(-4.1) menghasilkan -5, bukannya -4. Ini bertentangan dengan perkara yang dijangkakan oleh sesetengah pemula.

SELECT
  FLOOR(4.9)   AS floor_4_9,
  FLOOR(4.1)   AS floor_4_1,
  FLOOR(-4.1)  AS floor_neg_4_1,
  FLOOR(-4.9)  AS floor_neg_4_9;

Perbandingan CEIL dan FLOOR

Melihat CEIL dan FLOOR bersama-sama memudahkan anda memahami perbezaannya. CEIL sentiasa bergerak ke atas kepada nombor bulat seterusnya, manakala FLOOR sentiasa bergerak ke bawah.

Bayangkan sebuah bangunan: FLOOR ialah aras lantai yang anda jatuh ke, manakala CEIL ialah siling yang anda naik ke.

SELECT
  2.3   AS original,
  CEIL(2.3)  AS ceil_result,
  FLOOR(2.3) AS floor_result
UNION ALL
SELECT
  7.8,
  CEIL(7.8),
  FLOOR(7.8);

TRUNC: Memotong Tanpa Membundarkan

TRUNC() (atau TRUNCATE() dalam MySQL) membuang digit perpuluhan tanpa sebarang pembundaran. Fungsi ini hanya memotong digit selepas kedudukan yang ditentukan.

Ini berbeza daripada ROUND — TRUNC(4.9) menghasilkan 4, bukannya 5. Bahagian perpuluhan dibuang begitu sahaja.

SELECT
  TRUNC(4.9)       AS trunc_4_9,
  TRUNC(4.1)       AS trunc_4_1,
  TRUNC(-4.9)      AS trunc_neg_4_9,
  TRUNC(3.14159, 3) AS trunc_3_decimals;

Perbandingan ROUND dan TRUNC

Perbezaan utama antara ROUND dan TRUNC ialah ROUND mengubah nilai berdasarkan digit seterusnya, manakala TRUNC sentiasa membuang segala-galanya selepas titik pemotongan tanpa pelarasan.

Gunakan ROUND apabila anda mahukan nilai yang paling hampir secara matematik. Gunakan TRUNC apabila anda mahu membuang ketepatan secara ketat tanpa sebarang pelarasan ke atas — perkara yang lazim dalam pengiraan kewangan apabila anda tidak sepatutnya membayar lebih.

SELECT
  ROUND(2.567, 1)  AS rounded,
  TRUNC(2.567, 1)  AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)

Menggunakan ROUND dalam Jadual Sebenar

Fungsi pembundaran paling berkuasa apabila digunakan pada lajur jadual. Di sini, kita mencipta jadual produk ringkas dengan harga dan menggunakan ROUND untuk memaparkannya dengan kemas.

Corak ini sangat lazim dalam kueri e-dagang dan perakaunan apabila pengiraan mentah menghasilkan banyak tempat perpuluhan.

CREATE TABLE products (
  name  TEXT,
  price NUMERIC
);

INSERT INTO products VALUES
  ('Widget',  9.999),
  ('Gadget',  24.3333),
  ('Doohickey', 4.5678);

SELECT name, ROUND(price, 2) AS display_price
FROM products;

Menggabungkan Fungsi dalam Kueri

Anda boleh menggabungkan fungsi pembundaran dengan ungkapan SQL lain. Sebagai contoh, kira harga selepas diskaun, kemudian bundarkannya untuk paparan.

Kueri ini mengenakan diskaun 15%, membundarkan hasil kepada 2 tempat perpuluhan, dan turut memaparkan FLOOR serta CEIL bagi harga selepas diskaun — memberikan harga nombor bulat minimum dan maksimum.

SELECT
  name,
  price,
  ROUND(price * 0.85, 2)  AS discounted,
  FLOOR(price * 0.85)     AS min_price,
  CEIL(price  * 0.85)     AS max_price
FROM products;

Penomboran Halaman dengan CEIL

Penggunaan klasik CEIL ialah mengira jumlah halaman dalam sistem penomboran halaman. Jika anda mempunyai 97 baris dan memaparkan 10 baris bagi setiap halaman, anda memerlukan CEIL(97 / 10.0) = 10 halaman (bukannya 9, kerana halaman terakhir mempunyai 7 baris).

Sentiasa bahagikan dengan nombor perpuluhan (10.0, bukan 10) untuk mengelakkan pembahagian nombor bulat, yang akan membuang baki sebelum CEIL dapat memprosesnya.

SELECT
  97 AS total_rows,
  10 AS rows_per_page,
  CEIL(97 / 10.0) AS total_pages;

Semakan Ringkas

Uji pemahaman anda tentang fungsi pembundaran SQL.

Rumusan Pelajaran

Syabas! Berikut ialah ringkasan fungsi pembundaran dan pemotongan dalam SQL:

  • ROUND(n, d) — membundarkan kepada d tempat perpuluhan menggunakan peraturan matematik standard (5+ dibundarkan ke atas).
  • CEIL(n) — sentiasa membundarkan ke atas kepada nombor bulat terdekat.
  • FLOOR(n) — sentiasa membundarkan ke bawah kepada nombor bulat terdekat.
  • TRUNC(n, d) — membuang digit selepas kedudukan d tanpa pembundaran; tidak pernah meningkatkan nilai.

Gunakan ROUND untuk paparan dan statistik, CEIL untuk pengiraan kapasiti minimum (seperti halaman), FLOOR untuk pengiraan kapasiti maksimum, dan TRUNC apabila anda tidak boleh membundarkan ke atas — khususnya dalam konteks kewangan.

Percuma untuk bermula

Pelajari SQL dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
46
Pelajaran
183

Soalan Lazim

Adakah pelajaran “Pembundaran dan Pemenggalan” percuma?

Ya — teks penuh “Pembundaran dan Pemenggalan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus SQL Academy, tingkat taraf kepada CoddyKit PRO. Kursus SQL Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pembundaran dan Pemenggalan”?

ROUND, CEIL, FLOOR dan TRUNC. Anda berlatih SQL Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan SQL Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran SQL Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Pembundaran dan Pemenggalan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Aritmetik dan Operator
  2. Pembundaran dan Pemenggalan
  3. Pembahagian Integer berbanding Perpuluhan
  4. Fungsi Matematik Berguna
← Kembali ke SQL Academy