NaN
From Wikipedia, the free encyclopedia
From Wikipedia, the free encyclopedia
در رایانش از نظر نوع داده، NaN (مختصر شدهٔ not a number) به معنی عدد نیست یا ناعدد یک مقدار عددی است که در ممیز شناور نشاندهندهٔ مقدار غیرقابل نمایش، یا بدون تعریف است.
NaNها در سال ۱۹۸۵ توسط استاندارد IEEE ۷۵۴ همراه با تعریف بینهایت معرفی شد. NaNها به دو نوع NaNهای آرام و NaNهای سیگنالدهی دستهبندی میشوند.
NaNهای آرام برای انتشار خطاهای ناشی از عملیات یا مقادیر نامعتبر مورد استفاده قرار میگیرند، در حالی که NaNهای سیگنالدهی میتواند از ویژگیهای پیشرفته مثل مخلوط کردن عددی و محاسبات نمادین در حساب ممیز شناور پشتیبانی کند. مثلاً ۰/۰ یک بدون تعریف است که به عنوان عدد حقیقی تعیین میشود در نتیجه با NaN نشان داده میشود و ریشه دوم عدد منفی یک عدد موهومی است که به عنوان یک عدد ممیز شناور واقعی نمایش داده نمیشود و با NaN نشان داده میشود. از NaN برا نمایش نبود مقدار در رایانش استفاده میشود.
یک مقایسه با یک nan همیشه یک نتیجه نامنظم را بازمیگرداند، حتی زمانی که با خودش مقایسه میشود. نتیجهٔ مقایسه بر روی NaN آرام به صورت سیگنالدار یا بدون سیگنال میشود.
در مواردی که منجر به NaN سیگنالدار شود، به عنوان نامعلوم شناخته میشوند ولی تشخیص یکسان بودن یا نبودن x با NaN، یک NaN آرام است و میتوان برای تشخیص اینکه x برابر با NaN هست استفاده شود. دستور isNaN(x) تعریف شدهاست تا اگر x یک NaN باشد عملیات شامل استثنا (exception) نشود.
مقایسه | NaN ≥ x | NaN ≤ x | NaN> x | NaN <x | NaN = x یا NaN == x | NaN ≠ x یا NaN !== x یا NaN <> x |
---|---|---|---|---|---|---|
نتیجه | همیشه False | همیشه False | همیشه False | همیشه False | همیشه False | همیشه True |
سه نوع عملیات وجود دارد که میتوانند NaN را بازگردانند:[1]
از NaN برای نبود متغیر هم استفاده میشود که در گذشته پیش از استاندارد IEEE برنامهنویسها از اعداد ویژه مانند ۹۹۹۹۹۹۹۹- برای موارد بدون مقدار استفاده میکردند که روش مناسبی برای نمایش دادهها نبود.
تولید NaN لزوماً فقط به دلیل وجود یکی از شرایط فوق نیست و ممکن است گاهی به دلیل رخ دادن شرایط استثنا (exception) در برنامه، ممکن است خروجی NaN باشد.[2]