اذهب إلى المحتوى
  • 0

السؤال

نشر

أحاول أن أقوم بعمل برنامج يحاكي حركة سقوط الأجسام بإستخدام ++C ولكن عندما أقوم بتخزين الرقم 9.8 (عجلة الجاذبية) في متغير كالتالي:
 

// Gravitational acceleration
float gravity{ 9.8 }; 

يظهر لي الخطأ التالي:

'initializing': truncation from 'double' to 'float'

لم أفهم سبب هذا الخطأ؟ كيف يمكنني حل هذه المشكلة؟

أستخدم Visual Studio 2019 كبيئة للتطوير IDE

Recommended Posts

  • 1
نشر

هذا تحذير warning وليس خطأ  Error، ربما قمت بتفعيل "معاملة التحذيرات كأخطاء" في بيئة التطوير الخاصة بك IDE، لهذا لم يتم تصريف البرنامج. تستطيع أن تقوم بإيقاف هذا السلوك من خلال الضغط على المشروع وإختيار properties ثم قسم ++C/C قم بتغير treat warnings as errors إلى No

VS-WarningsAsErrors-min.jpg.32bdeef7ba1bf5f07442e3cdaf9d2adb.jpg

مع العلم أنه يفضل أن تبقى على هذا السلوك لأنه يخبرك بأي مشاكل حتى ولو كانت بسيطة أثناء عملية التصريف compiling مما يقلل المشاكل التي قد تحدث في المستقبل.

ويكمن سبب المشكلة في أنك تستخدم متغير من نوع float لتخزين القيمة (9.8) والتي هي عبارة عن double، ويمكنك تحديد أن الرقم عبارة عن float وليس double من خلال إضافة f إلى نهاية الرقم:

// Gravitational acceleration
float gravity{ 9.8f }; 

بهذه الطريقة يمكن أن تقوم بإخبار المصرِّف compiler بأنك تستعمل هنا قيمة literal float وليس double 

الإختلاف الرئيسي بين النوع float و النوع double في حجم الذاكرة المستهلك لتخزين القيمة، حيث يستخدم النوع float مساحة 4 بايت، بينما يستخدم النوع double 8 بايت

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...