cls*_*udt 16 c++ floating-point double numeric overflow
我有一种情况,就是一些数值结果(包括浮点运算与double和float)成为不正确的大尺寸输入,而不是小的.
一般来说,我想知道哪些工具可用于诊断数值溢出和有问题的精度损失等条件.
换句话说:是否存在一个抱怨溢出等的工具,就像valgrind抱怨内存错误一样?
如果启用浮点异常,则FPU可以在溢出时抛出异常.这究竟是如何工作的依赖于操作系统.例如:
feenableexcept(FE_ALL_EXCEPT)您的电话main.要启用溢出并除以零,请调用feenableexcept(FE_OVERFLOW | FE_DIVBYZERO).请注意,在所有情况下,第三方代码可能会禁用您已启用的异常; 这在实践中可能很少见.
这可能不如Valgrind那么好,因为它更像是一个调试器和手动检查,而不是一个最后得到的总结,但它的工作原理.