【发布时间】:2010-12-21 00:44:11
【问题描述】:
通常很难找到 NaN 的起源,因为它可能发生在计算的任何步骤并自行传播。 那么当计算返回 NaN 或 inf 时,是否可以让 C++ 程序停止?在我看来,最好的方法是崩溃并显示一个很好的错误消息:
Foo: NaN encoutered at Foo.c:624
这样的事情可能吗?你有更好的解决方案吗?你如何调试 NaN 问题?
编辑:精度:我在 Linux 下使用 GCC。
【问题讨论】:
-
有一种信号 NaN 会在硬件级别引发异常。也许你可以以某种方式捕获它,但我从来没有在靠近硬件的地方工作,所以没有确切的想法。但理论上它应该是可能的,因为 IEEE 754 明确包含了该功能。
标签: c++ exception floating-point numerical nan