当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 nextafter用法及代码示例


C语言math头文件(math.h)中nextafter函数的用法及代码示例。

用法:

     double nextafter  (double x     , double y);
      float nextafterf (float x      , float y);
long double nextafterl (long double x, long double y);
下一个可表示的值
返回后面的下一个可表示的值x在...方向y

类似的函数,nexttoward具有相同的行为,但是需要一个long double作为第二个论点。

标头<tgmath.h>提供此函数的type-generic宏版本。
额外的过载在此头文件中提供(<cmath>)的其他组合算术类型(Type1Type2):这些重载有效地将其参数转换为double在计算之前,除非至少有一个参数是类型long double(在这种情况下,两者都强制转换为long double反而)。

参数

x
基本值。
y
返回值近似于的值。
如果两个参数比较相等,则函数返回y

返回值

下一个可表示的值x在...方向y

如果x是类型中可表示的最大有限值,并且结果是无限或不可表示,将发生溢出范围误差发生。

如果溢出范围误差发生:
- 和math_errhandlingMATH_ERRNO设置:全局变量errno被设定为ERANGE
- 和math_errhandlingMATH_ERREXCEPT设置:FE_OVERFLOW被抛出

示例

/* nextafter example */
#include <stdio.h>      /* printf */
#include <math.h>       /* nextafter */

int main ()
{
  printf ("first representable value greater than zero: %e\n", nextafter(0.0,1.0));
  printf ("first representable value less than zero: %e\n", nextafter(0.0,-1.0));
  return 0;
}


可能的输出:

first representable value greater than zero: 4.940656e-324
first representable value less than zero: -4.940656e-324

相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C nextafter function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。