محمد المصري12 نشر 10 سبتمبر 2021 أرسل تقرير مشاركة نشر 10 سبتمبر 2021 (معدل) سلام عليكم المعادلة دي بتديني الناتج بشكل صحيح عادي لكن رسالة الخطأ دي بتظهر Notice: A non well formed numeric value encountered مش عارف بتظهر ليه رقم ان المعادلة متكررة في اماكن تانية من الصفحة بمتغيرات مختلفة و شغالة زي الفل <?php $sum_all_rubber = 0; foreach ($rubbers AS $rubber){ $total = (($rubber['countPiece'] * $rubber['colorNumber_input']) * $rubber['price']); /** @noinspection PhpWrongStringConcatenationInspection */ $sum_all_rubber += number_format($total,2); ?> تم التعديل في 10 سبتمبر 2021 بواسطة Wael Aljamal توضيح السؤال 3 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Wael Aljamal نشر 10 سبتمبر 2021 أرسل تقرير مشاركة نشر 10 سبتمبر 2021 أعتقد أن المشكلة في السطر $sum_all_rubber += number_format($total,2); حيث أن number_format تعيد سلسلة نصية string وليس رقم، وعندما يصبح المجموع كبير تضيع للسلسة النصية محرف , مثلا 1,999.90 والذي لايجمع مع باقي الأعداد، لذلك حاول تحويل الناتج النهائي لسلسلة نصية وإبقاء المتحول sum_all_rubber رقماً للنهاية <?php $sum_all_rubber = 0; foreach ($rubbers AS $rubber){ $total = (($rubber['countPiece'] * $rubber['colorNumber_input']) * $rubber['price']); /** @noinspection PhpWrongStringConcatenationInspection */ $sum_all_rubber += $total; } $sum_all_rubber = number_format($sum_all_rubber,2); // هنا التحويل ?> اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 سمير عبود نشر 10 سبتمبر 2021 أرسل تقرير مشاركة نشر 10 سبتمبر 2021 أعتقد أن سبب المُشكلة هو في الدالة number_format المستخدمة فالدالة تُعيد سلسلة نصية و ليس عدد، حاول إستخدامها خارج الحلقة foreach مرة واحدة و بداخل الحلقة إستخدم جمع قيم المتغير total بشكل عادي. 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 شرف الدين حفني نشر 10 سبتمبر 2021 أرسل تقرير مشاركة نشر 10 سبتمبر 2021 هل جميع القيم في $rubber عبارة عن ارقام؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد المصري12 نشر 10 سبتمبر 2021 الكاتب أرسل تقرير مشاركة نشر 10 سبتمبر 2021 طبعا ، و ترجع النتائج بشكل صحيح اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد المصري12 نشر 10 سبتمبر 2021 الكاتب أرسل تقرير مشاركة نشر 10 سبتمبر 2021 بتاريخ 3 دقائق مضت قال Wael Aljamal: أعتقد أن المشكلة في السطر $sum_all_rubber += number_format($total,2); حيث أن number_format تعيد سلسلة نصية string وليس رقم، وعندما يصبح المجموع كبير تضيع للسلسة النصية محرف , مثلا 1,999.90 والذي لايجمع مع باقي الأعداد، لذلك حاول تحويل الناتج النهائي لسلسلة نصية وإبقاء المتحول sum_all_rubber رقماً للنهاية <?php $sum_all_rubber = 0; foreach ($rubbers AS $rubber){ $total = (($rubber['countPiece'] * $rubber['colorNumber_input']) * $rubber['price']); /** @noinspection PhpWrongStringConcatenationInspection */ $sum_all_rubber += $total; } $sum_all_rubber = number_format($sum_all_rubber,2); // هنا التحويل ?> نعم ملاحظة هامة جدا لم انتبه لها و ايضا لم انتبه إلى ان هناك ارقام عشرية تدخل في الحساب فكان لابد من استخدام float الحل كان تحويل الناتج النهائي لسلسلة نصية وإبقاء المتغير sum_all_rubber رقماً ثم استبدال $total = (($rubber['countPiece'] * $rubber['colorNumber_input']) * $rubber['price']); ب $total = ( (float)$rubber['colorNumber_input'] * $rubber['countPiece']) * $rubber['price']; شكرا لكم جميعا 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمد المصري12
سلام عليكم
المعادلة دي بتديني الناتج بشكل صحيح عادي لكن رسالة الخطأ دي بتظهر
مش عارف بتظهر ليه رقم ان المعادلة متكررة في اماكن تانية من الصفحة بمتغيرات مختلفة و شغالة زي الفل
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.