Разница между тихим и сигнальным NaN заключается в их поведении при операциях:
- Тихий NaN распространяется почти через каждую арифметическую операцию, не сигнализируя об исключении. 1 Любая нетривиальная операция, принимающая тихий NaN как аргумент, всегда возвращает NaN вне зависимости от значения других аргументов. 2
- Сигнальный NaN сигнализирует о недопустимом исключении операции. 1 Он используется в механизме исключений, который позволяет перехватывать и реагировать на критические ошибки внутри программы. 3
Обычно тихий или сигнальный тип NaN определяется старшим битом мантиссы. 2
Также тихий NaN генерируется регулярными встроенными (программными или аппаратными) арифметическими операциями с странными значениями, а сигнальный NaN — никогда встроенными операциями, его можно добавить только явно программистом. 5