0Pricing
C Academy · درس

تحويلات الأعداد الصحيحة والعشرية

مخاوف الدقة

تحويلات الأعداد الصحيحة والعشرية درس مجاني في C Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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;
}

اختبار سريع

اختبر مدى فهمك لتحويلات الأعداد الصحيحة والعائمة.

مراجعة: تحويلات الأعداد الصحيحة والعائمة

تعلمت كيف تتغير الأعداد عند الانتقال بين الأنواع.

  • يُوسَّع int إلى double بأمان عادةً
  • يُقتطع double إلى int نحو الصفر
  • يحتفظ float بأرقام أقل من double
  • قرّب بإضافة 0.5 أو باستخدام استدعاءات المكتبة
  • تجنب استخدام == مع الأعداد العائمة؛ استخدم هامش سماح

الأسئلة الشائعة

هل درس «تحويلات الأعداد الصحيحة والعشرية» مجاني؟

نعم — نص درس «تحويلات الأعداد الصحيحة والعشرية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.

ماذا ستتعلم في «تحويلات الأعداد الصحيحة والعشرية»؟

مخاوف الدقة تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تحويلات الأعداد الصحيحة والعشرية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التحويلات الضمنية
  2. التحويلات الصريحة
  3. تحويلات الأعداد الصحيحة والعشرية
  4. مزالق التحويل
← العودة إلى C Academy