سؤال

والمشكلة هي هذه، عندما أضيف اثنين أو أكثر من الزوجي من جدول إلى وجهة نظر، بدلا من إعطائي النتائج الصحيحة، فإنه يضيف حوالي عشرة أو أكثر من ذلك أرقام. على سبيل المثال 0.5 + 1.5 = 1.99999999998 أو 5.5 + 8.5 = 14.0000000001. أيه أفكار؟ (أعرف أن هذا النوع من الأسئلة n00b وأتذكر الاضطرار إلى التعامل مع أشياء من هذا القبيل في الامتحانات في 9th الصف، ولكني لا أستطيع أن أتذكر كيف فعلت ذلك آنذاك: P)

هل كانت مفيدة؟

المحلول

http://dev.mysql.com/ وثيقة / RefMan معلومات / 5.0 / EN / سلسلة functions.html # function_format

ويمكنك تنسيق الأرقام بهذه الطريقة إذا thats ما بعد الخاص بك؟

نصائح أخرى

وإضافة 1 و 1 كما يطفو أو الزوجي يجب أن لا يؤدي إلى أي شيء ولكن 2.

وأجد أنه من الصعب أن نصدق أن 0.5 + 1.5 يخرج إلى أي شيء ولكن 2.

وجميع هذه الأرقام يمكن أن تكون ممثلة بشكل صحيح في نقطة عائمة الثنائية.

وأنا أكره أن أقول إنني لا أعتقد الأمثلة، ولكن أنا لا. : -)

ولكن، أعتقد أن قد يكون لديك مشكلة مع عدد مثل 1.1.

لماذا؟ لأن 10/01 تبين أن يكون تكرار عشري في ثنائي.

والمشكلة تأتي عندما تحاول تحويل أرقام النقطة العائمة بين العشري وتمثيلات الثنائية. بعض الأرقام تجعل الرحلة على ما يرام، ولكن البعض الآخر يتم تقريب فقط.


ومع ذلك، إذا الأمثلة بك العمل حقا مثل ذلك، ليس لدي أي فكرة عما يحدث، وأنا أحب أن أعرف.

<اقتباس فقرة>   <اقتباس فقرة>     

وأرقام النقطة العائمة ALWAYS مجرد تقديرات تقريبية. :-) إذا المسائل الدقيقة، ومعرفة طريقة لاستخدام الأعداد الصحيحة.

  

في تجربتي، عندما كنت نوع البيانات العشري بدلا من / مزدوجة، لم حصلت دائما على نتائج دقيقة تعويم.

<وأ href = "http://blogs.msdn.com/excel/archive/2008/04/10/understanding-floating-point-precision-aka-why-does-excel-give-me-seemingly- خطأ-answers.aspx "يختلط =" نوفولو noreferrer "> هذه المقالة يفسر القضية بشكل جيد.

وباختصار، يمكن أرقام نقطة عائمة كبيرة جدا، أو صغيرة جدا تؤدي إلى فقدان الدقة أثناء العمليات الحسابية.

ولا نتوقع صحيحة عند العمل مع العائمة أنواع نقطة.

وبالتأكيد ليس إذا كنت تبحث عن تفسير أو حل، ولكن منذ كنت قد حصلت بالفعل مؤشرات إلى تفسيرات جيدة ....

إذا كنت بحاجة إلى الأرقام الخاصة بك تتصرف مثل الأعداد الصحيحة، واستخدام الأعداد الصحيحة. إذا كنت في حاجة الى درجة محدودة من الدقة (أي منزلتين عشريتين، للحقول التي تمثل المال)، تخزينها كعدد على أي حال، ولكن اضربها أيا كان عامل من 10 تحتاج إلى التخلص من عشري عند وضعه في قاعدة البيانات والقسمة على نفسها عند تسحبه إلى الوراء.

وحتى إذا كنت تمثل القطعة التي تكلف 3.99 $، يمكنك وضع 399 في حقل WIDGET.cost.

ودونو إذا كان هذا ينطبق على حالتك أم لا. ولكن القاعدة العامة التي تقضي بجعل هو أن أرقام النقطة العائمة هي ALWAYS مجرد تقديرات تقريبية. :-) إذا المسائل الدقيقة، ومعرفة طريقة لاستخدام الأعداد الصحيحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top