C Academy · บทเรียน

การปัดเศษและค่าสัมบูรณ์

floor, ceil, round และ fabs

บทเรียน 4 จาก 413 ขั้นตอน

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

การปัดเศษและค่าสัมบูรณ์

บทเรียนนี้ครอบคลุมฟังก์ชันที่ใช้ปรับค่าจำนวน ได้แก่ floor ceil round และ trunc สำหรับการปัดเศษ รวมถึง fabs สำหรับหาค่าสัมบูรณ์

ฟังก์ชันทั้งหมดอยู่ใน math.h และทำงานกับค่า double

ฟังก์ชัน floor

floor(x) ปัดลงเป็นจำนวนเต็มที่ใกล้ที่สุด โดยมุ่งไปทางลบอนันต์

ดังนั้น floor(3.9) มีค่าเป็น 3.0 และ floor(-1.2) มีค่าเป็น -2.0

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", floor(3.9));
    printf("%.1f\n", floor(-1.2));
    return 0;
}

ฟังก์ชัน ceil

ceil(x) ปัดขึ้นเป็นจำนวนเต็มที่ใกล้ที่สุด โดยมุ่งไปทางบวกอนันต์

ดังนั้น ceil(3.1) มีค่าเป็น 4.0 และ ceil(-1.8) มีค่าเป็น -1.0

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", ceil(3.1));
    printf("%.1f\n", ceil(-1.8));
    return 0;
}

ฟังก์ชัน round

round(x) ปัดเป็นจำนวนเต็มที่ใกล้ที่สุด กรณีที่อยู่กึ่งกลางจะปัดออกจากศูนย์

ดังนั้น round(2.5) มีค่าเป็น 3.0 และ round(2.4) มีค่าเป็น 2.0

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", round(2.5));
    printf("%.1f\n", round(2.4));
    return 0;
}

ฟังก์ชัน trunc

trunc(x) เพียงตัดส่วนทศนิยมออก โดยเลื่อนค่าเข้าหาศูนย์เสมอ

ดังนั้น trunc(3.9) มีค่าเป็น 3.0 และ trunc(-3.9) มีค่าเป็น -3.0

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", trunc(3.9));
    printf("%.1f\n", trunc(-3.9));
    return 0;
}

เปรียบเทียบทั้งสี่ฟังก์ชัน

สำหรับค่า 2.7 ผลลัพธ์จะแตกต่างกัน:

  • floor(2.7) = 2.0 (down)
  • ceil(2.7) = 3.0 (ขึ้น)
  • round(2.7) = 3.0 (ใกล้ที่สุด)
  • trunc(2.7) = 2.0 (เข้าหาศูนย์)

เลือกฟังก์ชันที่ตรงกับจุดประสงค์ของคุณ

ค่าสัมบูรณ์ด้วย fabs

fabs(x) คืนค่าค่าสัมบูรณ์ของจำนวนจุดลอยตัว ซึ่งคือระยะห่างจากศูนย์และไม่มีวันเป็นลบ

ดังนั้น fabs(-7.5) จึงมีค่าเป็น 7.5

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", fabs(-7.5));
    printf("%.1f\n", fabs(7.5));
    return 0;
}

fabs เทียบกับ abs

โปรดระวัง: abs (จาก stdlib.h) ทำงานกับจำนวนเต็ม ส่วน fabs (จาก math.h) ทำงานกับค่า double

การใช้ abs กับค่า double จะตัดส่วนทศนิยมออกก่อน สำหรับจำนวนจุดลอยตัว ให้ใช้ fabs เสมอ

การแปลงเป็น int

ฟังก์ชันเหล่านี้คืนค่าเป็น double หากต้องการเก็บจำนวนเต็มเป็น int ให้แปลงชนิดผลลัพธ์

วิธีที่ปลอดภัยที่สุดคือใช้ round ก่อนแล้วจึงแปลงชนิด เพื่อไม่ให้ค่าอย่าง 2.999 กลายเป็น 2 โดยไม่ตั้งใจ

#include <stdio.h>
#include <math.h>

int main(void) {
    double x = 4.6;
    int whole = (int)round(x);
    printf("whole = %d\n", whole);
    return 0;
}

ตัวอย่างการหาระยะห่าง

fabs มีประโยชน์สำหรับวัดว่าค่าสองค่าห่างกันเท่าใด ไม่ว่าค่าใดจะมากกว่า

ในที่นี้ เราหาระยะห่างระหว่างอุณหภูมิสองค่า

#include <stdio.h>
#include <math.h>

int main(void) {
    double a = 5.0, b = 12.5;
    printf("gap = %.1f\n", fabs(a - b));
    return 0;
}

การปัดเศษเป็นทศนิยม

หากต้องการปัดเศษให้เหลือทศนิยมสองตำแหน่ง ให้คูณด้วย 100 ปัดเศษ แล้วหารด้วย 100

เทคนิคนี้ใช้ round เพื่อจัดค่าในรูปแบบจำนวนเงินให้เรียบร้อย

#include <stdio.h>
#include <math.h>

int main(void) {
    double price = 3.14159;
    double r = round(price * 100.0) / 100.0;
    printf("%.2f\n", r);
    return 0;
}

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

ทบทวนว่าฟังก์ชันปัดเศษแต่ละฟังก์ชันทำงานอย่างไร

สรุปทบทวน

คุณได้เรียนรู้ floor (down) ceil (ขึ้น) round (ใกล้ที่สุด) และ trunc (เข้าหาศูนย์) รวมถึง fabs สำหรับหาค่าสัมบูรณ์ของค่า double

อย่าลืมใช้ fabs แทน abs กับจำนวนจุดลอยตัว และแปลงชนิดเป็น int เมื่อต้องการจำนวนเต็ม ขอแสดงความยินดีที่เรียนหลักสูตร math.h จบ

เริ่มต้นได้ฟรี

เรียนรู้ C ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
39
บทเรียน
144

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

บทเรียน “การปัดเศษและค่าสัมบูรณ์” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

  1. รวม math.h
  2. เลขยกกำลังและราก
  3. ตรีโกณมิติและลอการิทึม
  4. การปัดเศษและค่าสัมบูรณ์
← กลับไปที่ C Academy