جمع الديسمل مع الفلوت

  • trad

السلام عليكم ورحمة الله وبركاتة عندي مشكلة الله يوفق الجميع جمع الديسمل مع الفلوت في لغة c

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

 float a = 1.23;
 int b = 10;
 float sum = a + b;

هل هذا ماتقصده ؟

  #include <stdio.h>

    int main(void) {
        float a = 1.23;
        int b = 10;
        float sum = a + b;

        printf("sum is: %f",sum);
        return 0;
    }

شكرا لك ياغالي نعم هذا ما اقصده الله يعطيك العافيه

لكنك ذكرت في العنوان عشري وليس صحيح أي decimal وليس int لأن هناك فرق بينهما حيث العشري يقبل الفاصلة بينما الصحيح لا

غلب على ظني أنه فُهم من كلمة "ليس صحيح" بمعنى "خطأ" و إنما القصد كلمة صحيح هي من مجموعة الأعداد الصحيحة Integer واختصارها int

ونفس الأمر في نهاية الجملة "بينما الصحيح لا" أقصد بينما النوع int لا

تبادر إلى ذهني ذلك عندما وجدت التقييم السالب فعلمت أن الكلام فُهم بشكل مختلف ، وعليه جرى التنويه.

و في حال حصل هذا الرد أيضاً على تقييم سالب فهذا يعني أن ردودي في هذا الموضوع غير مرغوب بها من قبل شخص ما ツ

هناك فرق بين النوعين decimal و float حيث دقة كل منهما تختلف وبالتالي لا يسمح بالعمليات المباشرة بينهما أو بإلحاق واحد منهما بمتحول من النوع الآخر لأنه لا يوجد تحويل ضمني بين النوعين

ولذا لا بد من التحويل الصريح ليعلم أنك تدرك أن أحدهما سيفقد بعض دقته عند التحويل

لهذا وجب تحويل إلى النوع الهدف أو النهائي إما من خلال دالة تحويل التابعة للنوع أو من خلال دالة جاهزة

في السي شارب يوجد دالة Pares أو TryParse التابعة لكل نوع وكذلك يوجد فئة خاصة بالتحويلات Convert

أما في c فلا أدري ما الدوال الموجودة لذلك .

يمكنك جمعهما فى float , ثم تحويله الى int (اذا كنت تريد النتيجة بالfloat)

مثلا :

int i=10;

float f=2,5;

float sum=i+f;

أو

float sum=(float)i+f;

أو

int sum=i+int(f);

كلها تعمل,

لكن هذه الصيغة لن تعمل :

int sum=i+f;