การปัดเศษและตัดทศนิยม
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เลขคณิตและตัวดำเนินการ
- การปัดเศษและตัดทศนิยม
- การหารจำนวนเต็มเทียบกับทศนิยม
- ฟังก์ชันคณิตศาสตร์ที่มีประโยชน์