NaN
Перейти до навігації
Перейти до пошуку
NaN (англ. Not-a-Number) — одне з особливих значень числа з рухомою комою. Відповідно до стандарту IEEE 754, такий стан задається через встановлення показника ступеня в зарезервоване значення. Використовується у багатьох математичних бібліотеках і математичних співпроцесорах. Цей стан може виникнути в різних випадках, наприклад, коли попередня математична операція завершилася з невизначеним результатом, або якщо в комірку пам'яті потрапило число, що не задовольняє умовам.
До операцій, що призводить до появи NaN як відповіді, належать:
- Всі математичні операції, що містять NaN як один з операндів;
- Ділення нуля на нуль;
- Ділення нескінченності на нескінченність;
- Множення нуля на нескінченність;
- Додавання нескінченності до нескінченності протилежного знаку;
- Обчислення квадратного кореня від'ємного числа[1].
- NaN не дорівнює жодному іншому значенню (навіть самому собі[2]); відповідно, найпростіший метод перевірки результату на NaN — це порівняння отриманої величини з самою собою.
- Будь-яка нетривіальна операція, що приймає NaN як аргумент, завжди повертає NaN незалежно від значення інших аргументів. Єдиними винятками з цього правила є функції max і min, які повертають значення «другого» аргументу (відмінного від NaN).
- Тривіальні операції, що є тотожністю, обробляються особливо: так, наприклад, 1NaN дорівнює 1.
- ↑ У разі, якщо бібліотека, що виконує цю операцію, не підтримує або не налаштована на використання комплексних чисел.
- ↑ Оскільки операції порівняння проходять через бібліотечні функції, які зазвичай перевіряють стан числа з рухомою комою.