محمد المصري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 اقتباس
0 شرف الدين حفني نشر 10 سبتمبر 2021 أرسل تقرير نشر 10 سبتمبر 2021 هل جميع القيم في $rubber عبارة عن ارقام؟ 1 اقتباس
0 محمد المصري12 نشر 10 سبتمبر 2021 الكاتب أرسل تقرير نشر 10 سبتمبر 2021 طبعا ، و ترجع النتائج بشكل صحيح اقتباس
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); // هنا التحويل ?> اقتباس
1 سمير عبود نشر 10 سبتمبر 2021 أرسل تقرير نشر 10 سبتمبر 2021 أعتقد أن سبب المُشكلة هو في الدالة number_format المستخدمة فالدالة تُعيد سلسلة نصية و ليس عدد، حاول إستخدامها خارج الحلقة foreach مرة واحدة و بداخل الحلقة إستخدم جمع قيم المتغير total بشكل عادي. 1 اقتباس
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 اقتباس
السؤال
محمد المصري12
سلام عليكم
المعادلة دي بتديني الناتج بشكل صحيح عادي لكن رسالة الخطأ دي بتظهر
مش عارف بتظهر ليه رقم ان المعادلة متكررة في اماكن تانية من الصفحة بمتغيرات مختلفة و شغالة زي الفل
توضيح السؤال
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.