بتاريخ: 10 سبتمبر 201114 سنة comment_215607 السلام عليكم الأخوة الأكارم بعد الإطلاع على الفصول الأولى من الدروس التعليمية التي نزلها الأخ الكريم مصطفى مشكورا لدي بعض الاستفسارات وارجو ان تتحملوني لأني لا ازال مبتدئ من الصفر في الجافا بشكل عام public class Float{ public static void main(String[] args) { int n = 10; int m = 3; double x = (double) n/m; System.out.println("x="+x); float y = (float) n/m; System.out.println("y="+y); double z = (float) n/m; System.out.println("z="+z); }} وعند التنفيذ يظهر الناتج التالي x=3.3333333333333335y=3.3333333z=3.3333332538604736 السؤال لماذا اختلف الناتج بين X و Zوهل الفرق مابين الـ DOUBLE و الـ FLOAT هو من ناحية السعة في الذاكرة فقط تقديم بلاغ
بتاريخ: 10 سبتمبر 201114 سنة comment_215616 إن الدقة (Precision) أي عدد الكسور العشرية في double اعلى من float وهذا يستلزم أن سعة الذاكرة للـ double أعلى من float تقديم بلاغ
بتاريخ: 12 سبتمبر 201114 سنة كاتب الموضوع comment_215641 مشكور يا أستاذ مصطفى على الرد وتوضيح الفكرة بالنسبة للسعة في الذاكرة ولكن هل يلزم الفارق في سعة الذاكرة مابين الـ double و الـ float تغيير الناتج بهذا الشكل الكبير مع العلم ان كل من x و z من نوع double x=3.3333333333333335z=3.3333332538604736 تقديم بلاغ
بتاريخ: 13 سبتمبر 201114 سنة comment_215660 هذا صحيح ولكنك في الكود أخذت القيمة float للمتغير z ولذلك اختلف الناتج تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.