double nexttoward(double x, long double y); x 보다 바로 큰(작은) 실수
float nexttowardf(float x, long double y); x 보다 바로 큰(작은) 실수
long double nexttowardl(long double x, long double y); x 보다 바로 큰(작은) 실수
입력 매개 변수 리스트
x 실수
y 실수
반환 값
x>y 일 때는 실수로 표현할 수 있는 수 중에 현재 x보다 바로 작은 실수
x<y 일 때는 실수로 표현할 수 있는 수 중에 현재 x보다 바로 큰 실수
x=y 일 때는 x
nextword 함수는 nextafter 함수와 같은 역할을 하는 함수입니다. 차이가 있는 것은 두번째 입력 매개변수의 형식이 long double이라는 것 말고는 아무런 차이가 없습니다.
다음의 예는 double 형식으로 1.0부터 표현할 수 있는 10개의 수를 확인하는 코드로 정밀도를 확인할 수 있습니다. 일반적으로 double 형식은 소수점 이하 15자리까지 유효하고 16자리부터 오차가 존재한다고 말합니다. 다음 코드의 결과로 그 말이 어떠한 의미인지 확인할 수 있습니다.
사용 예
//C언어 표준 라이브러리 함수 가이드 //double nexttoward(double x, long double y); x 보다 바로 큰(작은) 실수 //float nexttowardf(float x, long double y); x 보다 바로 큰(작은) 실수 //long double nexttowardl(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 = nexttoward(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