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

การแปลงจำนวนเต็มและจำนวนทศนิยม

ข้อควรระวังด้านความแม่นยำ

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

โลกของตัวเลขสองแบบ

C มีจำนวนเต็ม ซึ่งแม่นยำและไม่มีเศษ กับจำนวนจุดลอยตัว ซึ่งเป็นค่าโดยประมาณและมีเศษ การแปลงระหว่างสองชนิดนี้จะเปลี่ยนวิธีจัดเก็บค่า

#include <stdio.h>
int main(void) {
    int i = 10;
    double d = 10.5;
    printf("%d %.1f\n", i, d);
    return 0;
}

การขยาย int เป็น double

ค่า int ส่วนใหญ่เก็บใน double ได้อย่างแม่นยำ ดังนั้นการขยายจึงปลอดภัย

#include <stdio.h>
int main(void) {
    int n = 1000;
    double d = n;
    printf("d = %.1f\n", d);
    return 0;
}

การลดขนาด double เป็น int

การเปลี่ยนจาก double เป็น int จะตัดเศษเข้าหาศูนย์และอาจทำให้ข้อมูลสูญหาย

#include <stdio.h>
int main(void) {
    double d = 12.75;
    int n = (int)d;
    printf("n = %d\n", n);
    return 0;
}

การตัดเศษจำนวนลบ

การตัดเศษเข้าหาศูนย์หมายความว่า -2.9 จะกลายเป็น -2 ไม่ใช่ -3

#include <stdio.h>
int main(void) {
    double d = -2.9;
    int n = (int)d;
    printf("n = %d\n", n);
    return 0;
}

ความละเอียดของ float เทียบกับ double

float เก็บตัวเลขนัยสำคัญได้ประมาณ 7 หลัก ส่วน double ได้ประมาณ 15 หลัก การแปลง double เป็น float จะทำให้ความละเอียดลดลง

#include <stdio.h>
int main(void) {
    double d = 3.14159265358979;
    float f = (float)d;
    printf("%.5f\n", f);
    return 0;
}

การแปลง int ขนาดใหญ่เป็น float

int ที่มีค่ามากมากอาจไม่สามารถแทนค่าใน float ได้อย่างแม่นยำ จึงให้ผลลัพธ์ที่ถูกปัดเศษ

#include <stdio.h>
int main(void) {
    int big = 16777217;
    float f = (float)big;
    printf("%.1f\n", f);
    return 0;
}

การปัดเศษเทียบกับการตัดเศษ

การแคสต์จะตัดเศษ หากต้องการปัดเศษ ให้บวก 0.5 ก่อนสำหรับค่าบวก หรือใช้ฟังก์ชันจากไลบรารี

#include <stdio.h>
int main(void) {
    double d = 4.6;
    int truncated = (int)d;
    int rounded = (int)(d + 0.5);
    printf("%d %d\n", truncated, rounded);
    return 0;
}

การคำนวณค่าเฉลี่ย

การหาค่าเฉลี่ยของจำนวนเต็มต้องใช้การหารแบบจำนวนจุดลอยตัวเพื่อคงส่วนเศษไว้

#include <stdio.h>
int main(void) {
    int sum = 7, count = 2;
    double avg = (double)sum / count;
    printf("avg = %.2f\n", avg);
    return 0;
}

จุดพลาดเรื่องความเท่ากันของจำนวนจุดลอยตัว

เนื่องจากจำนวนจุดลอยตัวเป็นค่าโดยประมาณ การเปรียบเทียบด้วย == จึงมีความเสี่ยง ควรเปรียบเทียบโดยยอมให้มีค่าคลาดเคลื่อนเล็กน้อย

#include <stdio.h>
#include <math.h>
int main(void) {
    double a = 0.1 + 0.2;
    if (fabs(a - 0.3) < 1e-9)
        printf("close enough\n");
    return 0;
}

การผสมชนิดในเงื่อนไข

เมื่อเปรียบเทียบ int กับ double ค่า int จะถูกเลื่อนชนิด ดังนั้นการเปรียบเทียบจะเกิดขึ้นในรูปแบบจุดลอยตัว

#include <stdio.h>
int main(void) {
    int n = 3;
    double d = 3.5;
    if (n < d)
        printf("3 < 3.5\n");
    return 0;
}

การเลือกชนิดที่เหมาะสม

ใช้จำนวนเต็มสำหรับการนับและดัชนี และใช้จำนวนจุดลอยตัวสำหรับค่าการวัดและอัตราส่วน

#include <stdio.h>
int main(void) {
    int items = 4;
    double pricePer = 2.5;
    printf("total = %.2f\n", items * pricePer);
    return 0;
}

ตรวจสอบอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับการแปลงระหว่างจำนวนเต็มกับ float

สรุป: การแปลงระหว่างจำนวนเต็มกับ float

คุณได้เรียนรู้ว่าตัวเลขเปลี่ยนแปลงอย่างไรเมื่อเปลี่ยนชนิดแล้ว

  • การแปลงจาก int เป็น double มักขยายได้อย่างปลอดภัย
  • การแปลงจาก double เป็น int จะตัดเศษเข้าหาศูนย์
  • float เก็บตัวเลขได้น้อยกว่า double
  • ปัดเศษโดยบวก 0.5 หรือเรียกใช้ฟังก์ชันจากไลบรารี
  • หลีกเลี่ยงการใช้ == กับ float และใช้ค่าคลาดเคลื่อนแทน

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

บทเรียน “การแปลงจำนวนเต็มและจำนวนทศนิยม” ฟรีหรือไม่

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

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

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

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

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

บทเรียน “การแปลงจำนวนเต็มและจำนวนทศนิยม” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การแปลงโดยนัย
  2. การแคสต์โดยชัดแจ้ง
  3. การแปลงจำนวนเต็มและจำนวนทศนิยม
  4. ข้อผิดพลาดในการแปลง
← กลับไปที่ C Academy