在 IEEE 754-2008 标准(以下简称 IEEE 754)中,NaN(或“非数字”)是一种符号 浮点表示,它既不是有符号无穷大,也不是有限数。通常,NaN 作为某种程度上“不定”的计算的输出出现,例如,当尝试计算诸如 、
或
等量时。
NaN 表示的使用是一个相对较新的发展。传统上,诸如 或
等不定量的计算被视为不可恢复的错误,会导致计算停止。然而,在实践中,有时即使遇到这种情况,计算也应该继续进行;在这些情况下,可以通过指定像
和
这样的表达式的计算输出 NaN 而不是停止程序(Goldberg 1991)来避免不必要的停止。
表面上看,NaN 输出应该带有关于创建它的情况和/或操作的一些诊断信息。包含在 NaN 中的诊断信息称为其有效载荷。
在 IEEE 754 中,有两种不同类型的 NaN 表示,即静默 NaN(或 qNaN)和信号 NaN(或 sNaN)。IEEE 754 中的大多数操作传播 qNaN 而不发出异常信号,但在给定 sNaN 作为输入时,会发出无效操作异常信号(IEEE 计算机协会 2008)。