Mohssen A Mohssen نشر 26 نوفمبر 2021 أرسل تقرير نشر 26 نوفمبر 2021 أحاول أن أقوم بعمل برنامج يحاكي حركة سقوط الأجسام بإستخدام ++C ولكن عندما أقوم بتخزين الرقم 9.8 (عجلة الجاذبية) في متغير كالتالي: // Gravitational acceleration float gravity{ 9.8 }; يظهر لي الخطأ التالي: 'initializing': truncation from 'double' to 'float' لم أفهم سبب هذا الخطأ؟ كيف يمكنني حل هذه المشكلة؟ أستخدم Visual Studio 2019 كبيئة للتطوير IDE 1 اقتباس
1 سامح أشرف نشر 26 نوفمبر 2021 أرسل تقرير نشر 26 نوفمبر 2021 هذا تحذير warning وليس خطأ Error، ربما قمت بتفعيل "معاملة التحذيرات كأخطاء" في بيئة التطوير الخاصة بك IDE، لهذا لم يتم تصريف البرنامج. تستطيع أن تقوم بإيقاف هذا السلوك من خلال الضغط على المشروع وإختيار properties ثم قسم ++C/C قم بتغير treat warnings as errors إلى No مع العلم أنه يفضل أن تبقى على هذا السلوك لأنه يخبرك بأي مشاكل حتى ولو كانت بسيطة أثناء عملية التصريف compiling مما يقلل المشاكل التي قد تحدث في المستقبل. ويكمن سبب المشكلة في أنك تستخدم متغير من نوع float لتخزين القيمة (9.8) والتي هي عبارة عن double، ويمكنك تحديد أن الرقم عبارة عن float وليس double من خلال إضافة f إلى نهاية الرقم: // Gravitational acceleration float gravity{ 9.8f }; بهذه الطريقة يمكن أن تقوم بإخبار المصرِّف compiler بأنك تستعمل هنا قيمة literal float وليس double الإختلاف الرئيسي بين النوع float و النوع double في حجم الذاكرة المستهلك لتخزين القيمة، حيث يستخدم النوع float مساحة 4 بايت، بينما يستخدم النوع double 8 بايت 1 اقتباس
السؤال
Mohssen A Mohssen
أحاول أن أقوم بعمل برنامج يحاكي حركة سقوط الأجسام بإستخدام ++C ولكن عندما أقوم بتخزين الرقم 9.8 (عجلة الجاذبية) في متغير كالتالي:
يظهر لي الخطأ التالي:
'initializing': truncation from 'double' to 'float'
لم أفهم سبب هذا الخطأ؟ كيف يمكنني حل هذه المشكلة؟
أستخدم Visual Studio 2019 كبيئة للتطوير IDE
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.