numeric_limits<double>::epsilon()
被定义为1.0和下一个可由double表示的值之间的差,但我想查找/计算1.0以外的值的numeric_limits<double>::epsilon()
?有办法做到这一点吗?
如注释所示,您可以使用std::nextafter
:
float nextafter ( float from, float to );
返回从到的下一个可表示值。
float f = /* ... */
float next_after_f = std::nextafter(f, std::numeric_limits<float>::infinity());