1. พื้นฐานของการปัดเศษ: ทำไมจึงจำเป็น
ในการเขียนโปรแกรม การควบคุมความแม่นยำของตัวเลขอย่างเหมาะสมเป็นสิ่งสำคัญมาก โดยเฉพาะเมื่อผลลัพธ์ของการคำนวณมีจุดทศนิยม การใช้การปัดเศษจะช่วยจัดการตัวเลขให้ดูง่ายและเป็นระเบียบมากขึ้น เช่น การคำนวณจำนวนเงินหรือการสรุปข้อมูลการวัด การปัดเศษถูกใช้ในหลากหลายสถานการณ์
ตัวอย่างการปัดเศษ
เช่น เมื่อปัดเศษ 2.5 จะได้ 3 แต่ถ้าปัดเศษ 2.3 จะได้ 2 การดำเนินการแบบนี้พบได้บ่อยในชีวิตประจำวัน ในโลกของการเขียนโปรแกรมก็มีหลายกรณีที่ต้องทำให้ผลลัพธ์ง่ายขึ้นด้วยการปัดเศษ
2. วิธีปัดเศษในภาษา C
ในภาษา C การปัดเศษสามารถทำได้โดยใช้ฟังก์ชัน round() ซึ่งอยู่ในไลบรารี math.h ฟังก์ชันนี้จะปัดค่าที่มีจุดทศนิยมให้เป็นจำนวนเต็มที่ใกล้ที่สุด
วิธีใช้ฟังก์ชัน round() เบื้องต้น
ตัวอย่างโค้ดการใช้ฟังก์ชัน round() มีดังนี้
#include <stdio.h>
#include <math.h>
int main() {
double x = 2.5;
printf("ผลลัพธ์หลังปัดเศษ: %fn", round(x));
return 0;
}เมื่อรันโปรแกรมนี้ จะได้ผลลัพธ์ว่า “ผลลัพธ์หลังปัดเศษ: 3.000000” นี่คือผลลัพธ์ของการปัดเศษ 2.5 ให้เป็น 3 ด้วยฟังก์ชัน round() อย่าลืมใส่ไลบรารี math.h ด้วย
3. การปัดเศษโดยระบุจำนวนหลักทศนิยม
ถ้าต้องการปัดเศษโดยระบุจำนวนหลักทศนิยมในภาษา C ต้องใช้เทคนิคเพิ่มเติม เช่น การคูณด้วยเลข 10 ตามจำนวนหลักทศนิยมที่ต้องการ แล้วปัดเศษและหารกลับ
ตัวอย่างโค้ดสำหรับปัดเศษตามจำนวนหลัก
#include <stdio.h>
#include <math.h>
int main() {
double num = 123.456;
num = num * 100; // เปลี่ยนจุดทศนิยมสองหลักให้เป็นจำนวนเต็ม
double result = round(num) / 100; // ปัดเศษแล้วหารกลับ
printf("%.2fn", result); // ผลลัพธ์คือ 123.46
return 0;
}ในโค้ดนี้ เราคูณ num ด้วย 100 เพื่อย้ายจุดทศนิยม จากนั้นใช้ round() ปัดเศษ แล้วหารกลับด้วย 100 ตัวอย่างนี้จะปัด 123.456 ให้เป็น 123.46
4. การปัดเศษโดยไม่ใช้ฟังก์ชัน
ภาษา C สามารถปัดเศษโดยไม่ใช้ฟังก์ชัน round() ได้ โดยการบวก 0.5 แล้วแปลงเป็น int
วิธีปัดเศษด้วยตนเอง
#include <stdio.h>
int main() {
double num = 2.3;
int rounded = (int)(num + 0.5);
printf("ผลลัพธ์หลังปัดเศษ: %dn", rounded);
return 0;
}โค้ดนี้จะนำ 2.3 + 0.5 ได้ 2.8 แล้วแปลงเป็น int ได้ 2 วิธีนี้ใช้ปัดเศษโดยไม่ต้องใช้ round() เหมาะเป็นทางเลือกเสริม

5. การปัดเศษตัวเลขติดลบ
ไม่เพียงแต่ตัวเลขบวก ตัวเลขติดลบก็ปัดเศษได้เช่นกัน แต่ผลอาจดูขัดกับความรู้สึก เช่น -2.5 จะปัดเป็น -3 ไม่ใช่ -2 ฟังก์ชัน round() ในภาษา C จะปัดเศษตามมาตรฐานแม้กับเลขติดลบ
ตัวอย่างการปัดเศษเลขติดลบ
#include <stdio.h>
#include <math.h>
int main() {
double num = -2.5;
printf("ผลลัพธ์หลังปัดเศษ: %fn", round(num));
return 0;
}เมื่อรันโปรแกรมนี้ -2.5 จะถูกปัดเศษเป็น -3.0 เช่นเดียวกับเลขบวก การปัดเศษจะใช้กฎเดียวกันกับเลขลบด้วย ควรตรวจสอบให้แน่ใจว่าผลลัพธ์เป็นไปตามที่ต้องการเมื่อใช้กับเลขลบ
6. การปัดขึ้นและปัดลงในภาษา C
นอกจากการปัดเศษแล้ว การปัดลง (floor()) และการปัดขึ้น (ceil()) ก็ใช้จัดการตัวเลขในภาษา C ได้ โดยทั้งสองฟังก์ชันอยู่ในไลบรารี math.h
ตัวอย่างการปัดขึ้นและปัดลง
#include <stdio.h>
#include <math.h>
int main() {
double num = 2.7;
printf("ปัดลง: %fn", floor(num)); // ผลลัพธ์คือ 2.0
printf("ปัดขึ้น: %fn", ceil(num)); // ผลลัพธ์คือ 3.0
return 0;
}ในโค้ดนี้ หากใช้ floor() กับ 2.7 จะได้ 2.0 ส่วน ceil() จะได้ 3.0 floor() คือการปัดลง และ ceil() คือการปัดขึ้น
7. สรุป
การปัดเศษในภาษา C สามารถทำได้ง่ายด้วยฟังก์ชัน round() จากไลบรารี math.h หากต้องการปัดเศษตามจำนวนหลักหรือกับตัวเลขติดลบ อาจต้องใช้เทคนิคเพิ่มเติม การเลือกใช้วิธีปัดเศษ ปัดขึ้น หรือปัดลง ควรขึ้นอยู่กับลักษณะการใช้งานเพื่อให้จัดการตัวเลขได้ยืดหยุ่น


