الانتقال إلى المحتوى الرئيسي

كيفية مقارنة مزدوجة في جافا: دليل وأمثلة

في برمجة جافا ، غالبا ما نواجه الحاجة إلى مقارنة أرقام الفاصلة العائمة ، بما في ذلك القيم المزدوجة. ومع ذلك ، نظرا لخصائص تشغيل الفاصلة العائمة ، قد لا تكون المقارنة المزدوجة دائما بديهية ومضللة.

لمقارنة مزدوجة في جافا ، لا يمكنك استخدام = = أو ! المشغلون= ، لأنهم يتحققون فقط من المساواة في القيم. بدلا من ذلك ، يوصى باستخدام طرق الفئة المزدوجة ، مثل قارن() أو يساوي () ، لمقارنة الزوجي.

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

  1. طرق المقارنة المزدوجة في جافا
  2. دليل لمقارنة مزدوجة في جافا
  3. أمثلة على المقارنة المزدوجة في جافا
  4. سؤال وجواب
  5. كيف يمكن مقارنة القيم المزدوجة في جافا?
  6. ما هو يساوي () طريقة لمقارنة القيم المزدوجة في جافا?
  7. هل من الممكن استخدام عوامل المقارنة (على سبيل المثال ، = = أو != ) لمقارنة القيم المزدوجة في جافا?
  8. ما هو الفرق بين مقارنة() وكومباريتو () طرق عند مقارنة القيم المزدوجة في جافا?
  9. كيف يمكن مقارنة القيم المزدوجة مع الخطأ المحدد في جافا?
  10. لماذا يوصى باستخدام طرق الطبقة المزدوجة لمقارنة القيم المزدوجة في جافا?

طرق المقارنة المزدوجة في جافا

هناك عدة طرق لمقارنة الأرقام المزدوجة في جافا. يمكن أن تعطي مقارنة المساواة العادية باستخدام عامل التشغيل == نتائج غير متوقعة بسبب مشاكل في دقة تمثيل أرقام الفاصلة العائمة. لذلك ، يوصى باستخدام طرق المقارنة الأخرى:

        النظام.خارج.برينتلن ("د1 يساوي د2");

      } آخر {

      النظام.خارج.برينتلن ("د1 لا يساوي د2");

      }

      الرياضيات.القيمة المطلقة (مزدوجة أ) طريقة بإرجاع القيمة المطلقة لعدد مزدوج.

      مثال الاستخدام:

      مزدوج د = -10.5;

      • القيمة المطلقة المزدوجة = الرياضيات.عبس (د);
      • عند مقارنة الأرقام المزدوجة ، يجب أيضا مراعاة الخطأ في تمثيل أرقام الفاصلة العائمة. للقيام بذلك ، يمكنك استخدام إبسيلون (قيمة صغيرة) عند المقارنة:
      • ضعف د2 = 10.500000000000001;

      في هذا المثال ، نطاق الفرق بين د1 و د2 الذي يعتبر صالحا هو 0.000001. إذا كان الفرق أقل من هذه القيمة ، تعتبر الأرقام قريبة بما فيه الكفاية لبعضها البعض.

      دليل لمقارنة مزدوجة في جافا

      المزدوج هو نوع بيانات بدائي في لغة برمجة جافا يستخدم لتمثيل أرقام الفاصلة العائمة مزدوجة الدقة. عند مقارنة القيم المزدوجة ، تنشأ بعض الصعوبات بسبب تفاصيل التمثيل الداخلي لأرقام الفاصلة العائمة وقيود الدقة والتقريب.

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

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

      1. يساوي منطقية ثابتة العامة (س مزدوج ، ص مزدوج)
      2. - يقارن قيمتين مزدوجتين للمساواة. تأخذ هذه الطريقة في الاعتبار الخطأ عند مقارنة أرقام الفاصلة العائمة.العامة ثابت كثافة العمليات مقارنة (مزدوجة س ، مزدوجة ص)
        - يقارن قيمتين مزدوجة. إرجاع رقم سالب أو صفر أو رقم موجب اعتمادا على العلاقة بين س و ص.العامة ثابتة منطقية إسنان (مزدوج الخامس)
        - يتحقق ما إذا كانت القيمة مزدوجة نان (وليس عددا).العامة ثابتة منطقية إيسنفينيت (مزدوج الخامس)
      3. - يتحقق مما إذا كانت قيمة المضاعفة هي اللانهاية.
      4. إلى جانب هذه الأساليب ، هناك أيضا فئات مزدوج.سلبي_اللانهاية
        ,مزدوج.إيجابي_اللانهاية
      5. ,
      6. مزدوج.نان، والتي يمكن استخدامها للمقارنة المزدوجة مع اللانهاية أو نان.
        من المهم أن تتذكر أنه بسبب فقدان الدقة ، قد يكون لأرقام الفاصلة العائمة بعض القيود عند مقارنتها. في مثل هذه الحالات ، يوصى باستخدام هذه الطرق لتحقيق نتائج مقارنة أكثر دقة في جافا.أمثلة على المقارنة المزدوجة في جافا
      7. في جافا ، فمن غير المستحسن استخدام = = أو ! المشغلين لمقارنة قيمتين من النوع المزدوج= ، لأن هذا يمكن أن يؤدي إلى أخطاء بسبب عدم دقة تمثيل أرقام الفاصلة العائمة. بدلا من ذلك ، يجب عليك استخدام أساليب الطبقة المزدوجة أو مقارنة الفرق بين القيم بدقة معينة.
      8. فيما يلي أمثلة على استخدام طرق الفئة المزدوجة لمقارنة قيم النوع المزدوج:دوبليتولونغبيتس(): طريقة دوبلتولونغبيتس() تحويل قيمة مزدوجة إلى نوع طويل دون الأخذ بعين الاعتبار علامة ، والذي يسمح لك لمقارنة قيم الفاصلة العائمة.
        مثالالنتيجة

      هي قيمة مزدوجة1 = 1.23;

      قيمة مزدوجة2 = 1.2300000001;

      مزدوج.دوبلتولونغبيت (القيمة 1) = = مزدوج.دوبللونغبيت (قيمة2);

      صحيح

      يساوي(): تقارن طريقة يساوي() للفئة المزدوجة قيمتين من النوع المزدوج دون مراعاة الاختلاف في الدقة وترتيب الأحرف.

      Пример

      Результат

      Double.valueOf(value1).equals(Double.valueOf(value2));

      true

      compare(): Метод compare() класса Double сравнивает два значения типа double с учетом разницы в точности и порядке символов.

      Пример

      Результат

      Double.compare(value1, value2) == 0;

      true

      Double.compare(): Метод Double.قارن () يقارن قيمتين من النوع المزدوج ويعيد رقما سالبا أو صفرا أو رقما موجبا ، اعتمادا على أي من القيم أقل أو مساوية أو أكبر.