My Programming Notes

Here are Notes.... come from debugging

My Programming Notes

Here are Notes.... come from debugging

پنجشنبه, ۳۱ مرداد ۱۳۹۲، ۱۰:۳۰ ب.ظ

NaN چیست؟؟

 چند روز پیش داشتم روی یک کلاس کار می کردم که محاسباتی رو باید انجام می داد. تصور کردم که تمام مواردی که توی اون کلاس باید نوشته می شد، تموم شده و رفتم برای تست نهایی که اونو در اختیار دیگر همکارانم قرار بدهم... متاسفانه موقع دیباگ کردن با خطایی رو به رو شدم که می گفت این مقدار برابر NaN است!!

کلا اطلاعی ازش نداشتم حتی موقع خوندنش کلی خندیدم و از اون باتعابیری مثل نان و.... یاد کردم و به یک فان تبدیل شد ولی غافل از اینکه این NaN برای خودش کسی هست!! :D

 بعد از این تحقیقات به این نتیجه رسیدم : 

*در محاسبات NaN یک مقدار عدد نیست بلکه مقداری است از یک نوع داده ای که نماد یک مقدار تعریف نشده است. به خصوص در محاسبات ممیز شناوری.

*استفاده سیستماتیک از NaN ها از سال 1385 با معرفی استاندارد ممیز شناور IEEE 754 آغاز شد همراه با استفاده دیگر مقدار های بی نهایت.


*یک مقدار ثابت است.

*این مقدار حاصل صفر بر صفر است.

*این مقدار وقتی برگشت داده می شود که نتیجه عملیات تعریف نشده باشد.



تفاوت بین NaN (تعریف نشده) با Infinity (بی نهایت) :

یادمه استاد دیفرانسیل کنکورمون همیشه بین حرفاش تذکر می داد که بی نهایت () با تعریف نشده (ت . ن) فرق می کنه و الان مفهوم حرفش رو با این تجربه بهتر متوجه شدم.

Infinity () :

حاصل تجزیه کردن(Parse) و یا محدودیت های محاسباتی است  و نماد آن برابر با  (به قول استادمون دو وَر پف زینتی!) مثل تقسیم 3 بر صفر.


NaN :

مثل جذر 1- .




پ. ن : برای این پست مطالب موجود در  سایت های Wikipedia و MSDN و stackoverflow  را ترجمه کردم و کمی از اطلاعات خودم رو بهش اضافه کردم.



موافقین ۵ مخالفین ۰ ۹۲/۰۵/۳۱
سارا زکی زاده

What is NaN

Infinity

NaN

سی شارپ

نظرات  (۲)

۰۴ شهریور ۹۲ ، ۲۰:۲۹ شیما اسلامی فر
مرسی سارا جان
حداقل فهمیدیم چیه این NaN که کلی ارور داشتیم در موردش
پاسخ:
خواهش می کنم.
امیدوارم دیگه ارور ها رفع بشه!
۱۷ شهریور ۹۲ ، ۱۰:۴۵ میثم هوشمند
شادی روح اموات
تازه گذشتگان
بلاگ های گروه دوستان صــــــاــــــــوات فرست!


پاسخ:
اللهم صل علی محمد و آل محمد.
به زودی به روز می شود.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی