nextafter, nextafterf, nextafterl
헤더 파일
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - math.h
double nextafter(double x, double y); x 보다 바로 큰(작은) 실수
float nextafterf(float x, float y); x 보다 바로 큰(작은) 실수
long double nextafterl(long double x, long double y); x 보다 바로 큰(작은) 실수
입력 매개 변수 리스트
x 실수
y 실수
반환 값
x>y 일 때는 실수로 표현할 수 있는 수 중에 현재 x보다 바로 작은 실수
x<y 일 때는 실수로 표현할 수 있는 수 중에 현재 x보다 바로 큰 실수
x=y 일 때는 x
다음의 예는 double 형식으로 1.0부터 표현할 수 있는 10개의 수를 확인하는 코드로 정밀도를 확인할 수 있습니다. 일반적으로 double 형식은 소수점 이하 15자리까지 유효하고 16자리부터 오차가 존재한다고 말합니다. 다음 코드의 결과로 그 말이 어떠한 의미인지 확인할 수 있습니다.
사용 예
//C언어 표준 라이브러리 함수 가이드
//double nextafter(double x, double y); x 보다 바로 큰(작은) 실수
//float nextafterf(float x, float y); x 보다 바로 큰(작은) 실수
//long double nextafterl(long double x, long double y); x 보다 바로 큰(작은) 실수
//double 형식으로 1.0부터 표현할 수 있는 10개의 수를 확인(정밀도 확인)
#include <math.h>
#include <stdio.h>
int main(void)
{
double dummy=1.0;
int i;
for (i = 0; i < 10; i++)
{
dummy = nextafter(dummy, 2.0);
printf("%.20f\n", dummy);
}
}
출력
1.00000000000000022204
1.00000000000000044409
1.00000000000000066613
1.00000000000000088818
1.00000000000000111022
1.00000000000000133227
1.00000000000000155431
1.00000000000000177636
1.00000000000000199840
1.00000000000000222045
사용한 함수
'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글
실수 판별식 매크로 (0) | 2016.05.10 |
---|---|
fmin, fminf, fminl (0) | 2016.05.10 |
fmax, fmaxf, fmaxl (0) | 2016.05.10 |
fdim, fdimf, fdiml (0) | 2016.05.10 |
nexttoward, nexttowardf, nexttowardl (0) | 2016.05.10 |
nan, nanf, nanl (0) | 2016.05.10 |
copysign, copysignf, copysignl (0) | 2016.05.10 |
remquo, remquof, remquol (0) | 2016.05.10 |
trunc, truncf, truncl (0) | 2016.05.10 |
lround, lroundf, lroundl, llround, llroundf, llroundl (0) | 2016.05.10 |