c++ numeric_limits<double>::epsilon() 对于 1 以外的值
c++ numeric_limits<double>::epsilon() for values other than 1
numeric_limits<double>::epsilon()
被定义为 1.0 和下一个可以用 double 表示的值之间的差值,但是我想 find/calculate 1.0 以外的值的 numeric_limits<double>::epsilon()
?有什么办法吗?
正如评论中指出的那样,您可以使用 std::nextafter
:
float nextafter ( float from, float to );
Returns the next representable value of from in the direction of to.
float f = /* ... */
float next_after_f = std::nextafter(f, std::numeric_limits<float>::infinity());
numeric_limits<double>::epsilon()
被定义为 1.0 和下一个可以用 double 表示的值之间的差值,但是我想 find/calculate 1.0 以外的值的 numeric_limits<double>::epsilon()
?有什么办法吗?
正如评论中指出的那样,您可以使用 std::nextafter
:
float nextafter ( float from, float to );
Returns the next representable value of from in the direction of to.
float f = /* ... */
float next_after_f = std::nextafter(f, std::numeric_limits<float>::infinity());