NaN (англ. Not-a-Number) — одне з особливих значень числа з рухомою комою. Відповідно до стандарту IEEE 754, такий стан задається через встановлення показника ступеня в зарезервоване значення. Використовується у багатьох математичних бібліотеках і математичних співпроцесорах. Цей стан може виникнути в різних випадках, наприклад, коли попередня математична операція завершилася з невизначеним результатом, або якщо в комірку пам'яті потрапило число, що не задовольняє умовам.

До операцій, що призводить до появи NaN як відповіді, належать:

  • Всі математичні операції, що містять NaN як один з операндів;
  • Ділення нуля на нуль;
  • Ділення нескінченності на нескінченність;
  • Множення нуля на нескінченність;
  • Додавання нескінченності до нескінченності протилежного знаку;
  • Обчислення квадратного кореня від'ємного числа[1].

Властивості ред.

  • NaN не дорівнює жодному іншому значенню (навіть самому собі[2]); відповідно, найпростіший метод перевірки результату на NaN — це порівняння отриманої величини з самою собою.
  • Будь-яка нетривіальна операція, що приймає NaN як аргумент, завжди повертає NaN незалежно від значення інших аргументів. Єдиними винятками з цього правила є функції max і min, які повертають значення «другого» аргументу (відмінного від NaN).
  • Тривіальні операції, що є тотожністю, обробляються особливо: так, наприклад, 1NaN дорівнює 1.

Див. також ред.

Примітки ред.

  1. У разі, якщо бібліотека, що виконує цю операцію, не підтримує або не налаштована на використання комплексних чисел.
  2. Оскільки операції порівняння проходять через бібліотечні функції, які зазвичай перевіряють стан числа з рухомою комою.

Посилання ред.

  • NaN. Foldoc.org. Архів оригіналу за 20 вересня 2015. Процитовано 1 лютого 2023.