ماذا تفعل هذه الثلاثة خاصة القيم الفاصلة العائمة يعني:ما لا نهاية الإيجابية والسلبية اللانهاية ، نان ؟

StackOverflow https://stackoverflow.com/questions/1007586

سؤال

كيف يمكننا استخدامها في رموز و ما سوف يسبب نان(وليس عدد)?

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

المحلول

هذا قد يكون إشارة جيدة إذا كنت ترغب في معرفة المزيد عن العائمة تشير الأرقام في جافا.

وإيجابي إنفينيتي هو رقم موجب كبير بحيث لا يمكن أن تكون ممثلة بشكل طبيعي. إنفينيتي السلبي هو رقم سلبي كبير بحيث لا يمكن أن تكون ممثلة بشكل طبيعي. نان يعني "ليس الرقم" والنتائج من عملية حسابية التي لا تسفر عن number- مثل تقسيم 0 بواسطة 0.

في جاوة، ومزدوجة وتعويم الطبقات على حد سواء والثوابت لتمثيل جميع الحالات الثلاث. هم POSITIVE_INFINITY، NEGATIVE_INFINITY، ونان.

وبالإضافة إلى النظر في هذا:

double a = Math.pow(10, 600) - Math.pow(10, 600); //==NaN

ورياضيا، والجميع يمكن أن نرى ذلك هو 0. ولكن بالنسبة للآلة، هو "إنفينيتي" - "إنفينيتي" (من نفس الرتبة)، الذي هو في الواقع نان.

نصائح أخرى

  • إيجابية اللانهاية يعني الذهاب إلى ما لا نهاية في اتجاه إيجابي الذهاب إلى القيم التي تكون أكبر وأكبر في الحجم في الاتجاه الإيجابي.
  • السلبية اللانهاية يعني الذهاب إلى ما لا نهاية في الاتجاه السلبي الذهاب إلى القيم التي تكون أكبر وأكبر في الحجم في الاتجاه السلبي.
  • Not-a-عدد (نان) هو أمر غير معروف ، مثل نتيجة 0/0.

و الثوابت من مواصفات Float الدرجة:

مزيد من المعلومات يمكن العثور عليها في IEEE-754 صفحة في ويكيبيديا.

وهنا برنامج صغير لتوضيح ثلاث ثوابت:

System.out.println(0f / 0f);
System.out.println(1f / 0f);
System.out.println(-1f / 0f);

الإخراج:

NaN
Infinity
-Infinity
  • 1/0 نتيجة إيجابية في اللانهاية.
  • 0/0 سيؤدي نان.يمكنك استخدام نان أي رقم آخر, على سبيل المثال:نان+نان=نان نان+2.0=نان
  • -1/0 سيؤدي إلى ما لا نهاية سلبية.

اللانهاية (java) يعني أن نتيجة العملية سوف يكون مثل هذا كبيرة للغاية إيجابية أو سلبية عدد من أنه لا يمكن أن تكون ممثلة بشكل طبيعي.

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

ونان هو خاص جدا: إذا كان x نان، س س == هو كاذب (وهذا في الواقع طريقة واحدة لاختبار نان، على الأقل في C، مرة أخرى). هذا يمكن أن يكون مربكا للغاية إذا كنت لا تستخدم لالعائمة خصوصيات نقطة. إلا إذا كنت تفعل الحساب العلمي، وأود أن أقول أن وجود نان إرجاعها بواسطة عملية غير علة، على الأقل في معظم الحالات التي تتبادر إلى الذهن. نان يمكن أن تأتي لمختلف العمليات: 0/0، الوقود النووي المشع - الوقود النووي المشع، الوقود النووي المشع / الوقود النووي المشع، 0 * الوقود النووي المشع. نان ليس لديها أي ممتلكات الطلب، إما.

ويمكنك استخدامها مثل أي رقم آخر:

ومنها مثلا:

float min = Float.NEGATIVE_INFINITY;
float max = Float.POSITIVE_INFINITY;
float nan = Float.NaN;
<اقتباس فقرة>   

وإيجابي إنفينيتي هو رقم موجب كبير بحيث لا يمكن أن يكون   ممثلة بشكل طبيعي. إنفينيتي السلبي هو رقم سلبي كبير جدا   أنه لا يمكن أن تكون ممثلة بشكل طبيعي. نان يعني "ليس الرقم" و   النتائج من <قوية> العملية الحسابية التي لا تسفر عن عدد - يمكنك   مثل تقسيم 0 بواسطة 0.

وهذه ليست إجابة كاملة (أو لم توضح بما فيه الكفاية) - النظر في هذا:

double a = Math.pow(10,600) - Math.pow(10,600); //==NaN

ورياضيا الجميع يمكن أن نرى ذلك هو 0. ولكن للجهاز أنه هو "إنفينيتي" - "إنفينيتي" (من نفس الترتيب) الساحرات هو في الواقع نان ...

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