اذهب إلى المحتوى
  • 0

لماذا الناتج غير صحيح عند عملية الضرب في بايثون؟

عمار هبه

السؤال

انا جديد على بايثون...فالمعذرة منكم جميعا

لماذا عند عملية الضرب في بايثون يكون الناتج غير صحيح

مثلا 

9*0.01*10

يكون الناتج 0.8999999999999999

والاصل يكون الناتج 0.9

كيف اتخلص من هذه المشكله

 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • -1

لأن  بايثون تستخدم عددًا عشريًا مزدوجًا لتمثيل الأعداد العشرية، والأعداد العشرية المزدوجة هي أعداد عشرية تقريبية، مما يعني أنها لا يمكنها تمثيل جميع الأعداد العشرية بدقة.

ففي العملية 9 * 0.01 * 10 الناتج يساوي 0.8999999999999999 لأن 0.01 هو رقم عشري مزدوج غير دقيق، وإن كنت تريد الحصول على الناتج الصحيح، فعليك استخدام عدد عشري دقيق، أي:

  1. استخدم نوعًا عشريًا دقيقًا، مثل Decimal.
import decimal

result = decimal.Decimal(9) * decimal.Decimal(0.01) * decimal.Decimal(10)
print(result) #0.9000000000000000187350135405
  1. أو تقريب الرقم العشري المزدوج.
result = round(9 * 0.01 * 10, 4)
print(result) #0.9

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...