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