给出一个定义为]的变量>
T x;
其中T
是通用算术类型(即std::is_arithmetic<T>::value
),是否存在一个简单表达式(例如std::numeric_limits
中的内容),其求值为y
中可表示的最小值T
,因此[ C0
y
?(即一种广义增量。。]
x
标头的<cmath>
将执行此操作。它接受float,double,long double或整数类型,并在其第二个参数的方向上返回下一个值。
所以,给定这样的代码:
std::nexttoward()
如果std::nexttoward()
为1.0f,则T my_val = some_input; // float, double, int, etc.
T next = std::nexttoward(my_val, std::numeric_limits<T>::max());`
将是1之后的第二大浮点;如果my_val
是整数2,则将得到3,依此类推。
((请注意,关于数字溢出,这里有很多不错的打印方法,上面链接的CppReference页面对此进行了讨论。对于它的长短之处,不要在第一个参数中传入next
。]
std::nextafter
尽管对此scur3进行鬼混,但指出cmath可以解决浮点值。因此需要一些打字和测试。