لماذا نضع f بعد قيمة المتغير من نوع float ؟

وجدت هذا الشرح

لكن مافهمته أنه يعتبر القيمة double ولكي نخبر الكمبيوتر أنها float يجب أن نضع f.

لكن مازال السؤال قائما لماذا نستعمل ذلك مع أننا حددنا مسبقا أنه من النوع float عند تعريف المتغير وليس من النوع double ؟

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

التعليقات

اقرب سبب لوضع "f" بعد الرقم لمتغير من نوع float هو عملية الكاستنج Casting. حيث تتولى الجافا تحوير Rounding الرقم إلى صيغة float لأنه يعامل بشكل افتراضي كـ double عندما تتواجد الفاصلة العشرية. فمثلا رقم "1.23222223333333" سيتم تحويره إلى "1.2322222". حيث ان float تستوعب ٧ ارقام بعد الفاصلة العشرية.

يمكنك ملاحظة ان :

float number = 1.23f;

تكافئ عمليا :

float number = (float) 1.23;

حيث تعامل 1.23 افتراضيا كـ double وعن طريق الكاستنج انت تتولى تحويلها إلى float. اعرف ان هذا مربك بعض الشئ ولكن هكذا هو تصميم لغة الجافا ويجب ان تحترم قوانينها :)

أحمد ابراهيم أضف ردا

إذا هو أمر في تصميم اللغة، لكنني أرى أن تصميمها بهذه الطريقة غير منطقي فطالما أنا قمت بتحديد النوع لماذا يتعين علي أن أقوم بتحويله مرة أخرى.

سؤال آخر من فضلك: هل إذا لم أضع حرف L بعد القيم داخل متغير من النوع Long سيتم اعتبارها Integer؟

 بالمناسبة منذ فترة لاحظت أن المدونة لا تعمل، هل قررت إزالتها أم أن هناك مشكلة تقنية ؟

غير منطقي فطالما أنا قمت بتحديد النوع لماذا يتعين علي أن أقوم بتحويله مرة أخرى.

بالعكس، أرى أن هذا مرن جدًّا، لأنك في الواقع أنت لم تقم بتحديد نوع 1.23 بل قمت بتحديد نوع number

وبهذا يمكنك أن ترفق ما تشاء إلى ما تشاء.

سؤال آخر من فضلك: هل إذا لم أضع حرف L بعد القيم داخل متغير من النوع Long سيتم اعتبارها Integer؟

أجل والعديد من لغات البرمجة (ذات المستوى الأعلى) تستخدم نفس الصيغة النحوية (#C له نفس الصيغة كذلك)

كل على يقين أن مطوّري هذه الصيغ خبراء وقاموا بذلك بناء على دراسات.