我正在调试一个在许多 Fortran 文件中进行许多计算的模拟。我习惯于看到一些浮点异常(-1.#QNB 或 1.#QNAN),这些错误涉及除以零或超出浮点数最大大小的操作。我假设 -1.#IO 表示无效操作,但我不确定在数学上是什么导致这种情况,而不是 QNB、QNAN 或 QINF。
什么会导致异常-1.#IO?
我正在调试一个在许多 Fortran 文件中进行许多计算的模拟。我习惯于看到一些浮点异常(-1.#QNB 或 1.#QNAN),这些错误涉及除以零或超出浮点数最大大小的操作。我假设 -1.#IO 表示无效操作,但我不确定在数学上是什么导致这种情况,而不是 QNB、QNAN 或 QINF。
什么会导致异常-1.#IO?
根据IEEE 754 浮点运算标准,会发出无效运算信号
当 NaN 或无限操作数无法以目标格式表示并且无法以其他方式表示时 [...] 当数字操作数将转换为目标格式范围之外的整数时,如果出现此情况,则应发出无效操作异常信号情况不能以其他方式表示。
此页面提供了一些示例: