عمار هبه نشر 4 أكتوبر 2023 أرسل تقرير نشر 4 أكتوبر 2023 (معدل) انا جديد على بايثون...فالمعذرة منكم جميعا لماذا عند عملية الضرب في بايثون يكون الناتج غير صحيح مثلا 9*0.01*10 يكون الناتج 0.8999999999999999 والاصل يكون الناتج 0.9 كيف اتخلص من هذه المشكله تم التعديل في 4 أكتوبر 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
-1 Mustafa Suleiman نشر 4 أكتوبر 2023 أرسل تقرير نشر 4 أكتوبر 2023 لأن بايثون تستخدم عددًا عشريًا مزدوجًا لتمثيل الأعداد العشرية، والأعداد العشرية المزدوجة هي أعداد عشرية تقريبية، مما يعني أنها لا يمكنها تمثيل جميع الأعداد العشرية بدقة. ففي العملية 9 * 0.01 * 10 الناتج يساوي 0.8999999999999999 لأن 0.01 هو رقم عشري مزدوج غير دقيق، وإن كنت تريد الحصول على الناتج الصحيح، فعليك استخدام عدد عشري دقيق، أي: استخدم نوعًا عشريًا دقيقًا، مثل Decimal. import decimal result = decimal.Decimal(9) * decimal.Decimal(0.01) * decimal.Decimal(10) print(result) #0.9000000000000000187350135405 أو تقريب الرقم العشري المزدوج. result = round(9 * 0.01 * 10, 4) print(result) #0.9 1 اقتباس
السؤال
عمار هبه
انا جديد على بايثون...فالمعذرة منكم جميعا
لماذا عند عملية الضرب في بايثون يكون الناتج غير صحيح
مثلا
9*0.01*10
يكون الناتج 0.8999999999999999
والاصل يكون الناتج 0.9
كيف اتخلص من هذه المشكله
تعديل عنوان السؤال
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.