0Pricing
SQL Academy · บทเรียน

การปัดเศษและตัดทศนิยม

ROUND, CEIL, FLOOR และ TRUNC

การปัดเศษและตัดทศนิยม เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดการปัดเศษจึงสำคัญ

เมื่อทำงานกับตัวเลขใน SQL คุณมักได้ผลลัพธ์ที่มีตำแหน่งทศนิยมหลายตำแหน่ง ตัวอย่างเช่น การหาร 10 ด้วย 3 ให้ผลเป็น 3.3333333...

SQL มีฟังก์ชันในตัวสำหรับควบคุมจำนวนตำแหน่งทศนิยมที่จะแสดงหรือจัดเก็บ ได้แก่ ROUND, CEIL, FLOOR และ TRUNC ฟังก์ชันเหล่านี้จำเป็นสำหรับการนำเสนอข้อมูลทางการเงิน การวัดค่า และสถิติให้ดูเรียบร้อย

SELECT 10.0 / 3.0 AS raw_result;

ROUND: การใช้งานพื้นฐาน

ฟังก์ชัน ROUND() ปัดตัวเลขให้เหลือจำนวนตำแหน่งทศนิยมที่กำหนด โดยใช้กฎการปัดเศษมาตรฐาน: ตัวเลขตั้งแต่ 5 ขึ้นไปจะปัดขึ้น ส่วนตัวเลขที่ต่ำกว่า 5 จะปัดลง

ไวยากรณ์คือ ROUND(number, decimal_places) หากละอาร์กิวเมนต์ตัวที่สอง ฟังก์ชันจะปัดเป็นจำนวนเต็มที่ใกล้ที่สุด

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

ROUND กับตำแหน่งทศนิยมติดลบ

ความสามารถที่ไม่ค่อยมีใครรู้ของ ROUND() คือคุณสามารถส่งจำนวน ติดลบ เป็นอาร์กิวเมนต์ตัวที่สองได้ วิธีนี้จะปัดไปทางซ้ายของจุดทศนิยม จึงเหมาะสำหรับการปัดเป็นหลักสิบ หลักร้อย หรือหลักพันที่ใกล้ที่สุด

ตัวอย่างเช่น ROUND(1567, -2) จะปัดเป็นหลักร้อยที่ใกล้ที่สุดและให้ผลเป็น 1600

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

CEIL: ปัดขึ้นเสมอ

CEIL() (ในบางฐานข้อมูลเขียนเป็น CEILING()) จะปัดตัวเลขขึ้นเป็นจำนวนเต็มที่ใกล้ที่สุดเสมอ โดยไม่ขึ้นกับส่วนทศนิยม

วิธีนี้มีประโยชน์เมื่อต้องมั่นใจว่าจะไม่ต่ำกว่าค่าขั้นต่ำ เช่น การคำนวณจำนวนหน้าที่ต้องใช้เพื่อแสดงชุดผลลัพธ์

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: ปัดลงเสมอ

FLOOR() จะปัดตัวเลขลงเป็นจำนวนเต็มที่ใกล้ที่สุดเสมอ โดยไม่ขึ้นกับส่วนทศนิยม

โปรดสังเกตว่าสำหรับจำนวนติดลบ FLOOR จะปัดออกจากศูนย์ — FLOOR(-4.1) ให้ผลเป็น -5 ไม่ใช่ -4 พฤติกรรมนี้ตรงข้ามกับที่ผู้เริ่มต้นบางคนคาดไว้

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;

เปรียบเทียบ CEIL กับ FLOOR

เมื่อเห็น CEIL และ FLOOR พร้อมกัน จะเข้าใจความแตกต่างได้ง่าย CEIL จะเลื่อนไปยังจำนวนเต็มถัดไปที่สูงขึ้นเสมอ ส่วน FLOOR จะเลื่อนไปยังจำนวนเต็มที่ต่ำลงเสมอ

ลองนึกภาพอาคาร: FLOOR คือระดับพื้นดินที่คุณตกลงไปถึง ส่วน CEIL คือเพดานที่คุณลอยขึ้นไปถึง

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: ตัดโดยไม่ปัดเศษ

TRUNC() (หรือ TRUNCATE() ใน MySQL) จะลบหลักทศนิยมออกโดยไม่ปัดเศษ เพียงตัดตัวเลขหลังตำแหน่งที่กำหนดทิ้ง

วิธีนี้แตกต่างจาก ROUND — TRUNC(4.9) ให้ผลเป็น 4 ไม่ใช่ 5 ส่วนทศนิยมจะถูกทิ้งไปเท่านั้น

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;

เปรียบเทียบ ROUND กับ TRUNC

ความแตกต่างสำคัญระหว่าง ROUND กับ TRUNC คือ ROUND จะเปลี่ยนค่าตามตัวเลขหลักถัดไป ขณะที่ TRUNC จะทิ้งทุกอย่างหลังจุดตัดโดยไม่ปรับค่าเสมอ

ใช้ ROUND เมื่อต้องการค่าที่ใกล้เคียงตามหลักคณิตศาสตร์ที่สุด ใช้ TRUNC เมื่อต้องการตัดความละเอียดออกอย่างเคร่งครัดโดยไม่เพิ่มค่า ซึ่งพบได้บ่อยในการคำนวณทางการเงินที่ไม่ควรจ่ายเงินเกิน

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)

การใช้ ROUND กับตารางจริง

ฟังก์ชันการปัดเศษมีประสิทธิภาพมากที่สุดเมื่อนำไปใช้กับคอลัมน์ของตาราง ในที่นี้เราสร้างตาราง ผลิตภัณฑ์ อย่างง่ายที่มีราคา และใช้ ROUND เพื่อแสดงราคาให้ดูเรียบร้อย

รูปแบบนี้พบได้บ่อยมากในคิวรีด้านพาณิชย์อิเล็กทรอนิกส์และการบัญชี ซึ่งการคำนวณดิบมักให้ตำแหน่งทศนิยมหลายตำแหน่ง

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;

การรวมฟังก์ชันในคิวรี

คุณสามารถรวมฟังก์ชันการปัดเศษเข้ากับนิพจน์ SQL อื่น ๆ ได้ เช่น คำนวณราคาหลังหักส่วนลด แล้วปัดเศษเพื่อแสดงผล

คิวรีนี้ใช้ส่วนลด 15% ปัดผลลัพธ์ให้เหลือทศนิยม 2 ตำแหน่ง และยังแสดงค่า FLOOR กับ CEIL ของราคาหลังหักส่วนลดด้วย ทำให้ได้ราคาจำนวนเต็มต่ำสุดและสูงสุด

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;

การแบ่งหน้าโดยใช้ CEIL

การใช้งาน CEIL ที่พบได้ทั่วไปคือการคำนวณจำนวนหน้าทั้งหมดในระบบแบ่งหน้า หากมี 97 แถวและแสดงหน้าละ 10 แถว คุณต้องใช้ CEIL(97 / 10.0) = 10 หน้า ไม่ใช่ 9 หน้า เพราะหน้าสุดท้ายมี 7 แถว

ให้หารด้วยค่าทศนิยมเสมอ (10.0 ไม่ใช่ 10) เพื่อหลีกเลี่ยงการหารจำนวนเต็ม ซึ่งจะทิ้งเศษไปก่อนที่ CEIL จะได้ทำงาน

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

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับฟังก์ชันการปัดเศษของ SQL

ทบทวนบทเรียน

ทำได้ดีมาก ต่อไปนี้คือสรุปฟังก์ชันการปัดเศษและการตัดทอนใน SQL:

  • ROUND(n, d) — ปัดให้เหลือ d ตำแหน่งทศนิยมตามกฎคณิตศาสตร์มาตรฐาน (ตั้งแต่ 5 ขึ้นไปจะปัดขึ้น)
  • CEIL(n) — ปัดขึ้นเป็นจำนวนเต็มที่ใกล้ที่สุดเสมอ
  • FLOOR(n) — ปัดลงเป็นจำนวนเต็มที่ใกล้ที่สุดเสมอ
  • TRUNC(n, d) — ลบตัวเลขหลังตำแหน่ง d ออกโดยไม่ปัดเศษ และไม่เพิ่มค่าขึ้น

ใช้ ROUND สำหรับการแสดงผลและสถิติ ใช้ CEIL สำหรับการคำนวณความจุขั้นต่ำ เช่น จำนวนหน้า ใช้ FLOOR สำหรับการคำนวณจำนวนสูงสุดที่รองรับได้ และใช้ TRUNC เมื่อไม่ต้องการปัดขึ้นโดยเด็ดขาด โดยเฉพาะในบริบททางการเงิน

คำถามที่พบบ่อย

บทเรียน “การปัดเศษและตัดทศนิยม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การปัดเศษและตัดทศนิยม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การปัดเศษและตัดทศนิยม”

ROUND, CEIL, FLOOR และ TRUNC คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การปัดเศษและตัดทศนิยม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม

ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เลขคณิตและตัวดำเนินการ
  2. การปัดเศษและตัดทศนิยม
  3. การหารจำนวนเต็มเทียบกับทศนิยม
  4. ฟังก์ชันคณิตศาสตร์ที่มีประโยชน์
← กลับไปที่ SQL Academy