언제나휴일 2016. 5. 10. 17:59
반응형

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 표준 라이브러리 함수] - printf

반응형