عمار هبه نشر 4 أكتوبر 2023 أرسل تقرير مشاركة نشر 4 أكتوبر 2023 (معدل) انا جديد على بايثون...فالمعذرة منكم جميعا لماذا عند عملية الضرب في بايثون يكون الناتج غير صحيح مثلا 9*0.01*10 يكون الناتج 0.8999999999999999 والاصل يكون الناتج 0.9 كيف اتخلص من هذه المشكله تم التعديل في 4 أكتوبر 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
-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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
عمار هبه
انا جديد على بايثون...فالمعذرة منكم جميعا
لماذا عند عملية الضرب في بايثون يكون الناتج غير صحيح
مثلا
9*0.01*10
يكون الناتج 0.8999999999999999
والاصل يكون الناتج 0.9
كيف اتخلص من هذه المشكله
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.