실수 판별식 매크로
헤더 파일
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - math.h
int isgreater(real-floating x, real-floating y); x>y 매크로 함수
int isgreaterequal(real - floating x, real - floating y); x>=y 매크로 함수
int isless(real-floating x, real-floating y); x<y 매크로 함수
int islessequal(real-floating x, real-floating y); x<=y 매크로 함수
int islessgreater(real-floating x, real-floating y); (x>y)||(x<y) 매크로 함수
int isunordered(real-floating x, real-floating y); (isnan(x)||isnan(y)) 매크로 함수
int fpclassify(real-floating x); x가 어떤 종류의 값인지 판별
int isfinite(real - floating x); x가 inf가 아닌지 판별
int isnan(real-floating x); x가 nan인지 판별
int isinf(real-floating x); x가 inf인지 팔별
int signbit(real-floating x); x가 음수인지 판별
math.h 에서는 실수에 관한 다양한 판별식 매크로 함수를 제공합니다. 다음의 예제는 실수에 관한 다양한 판별식 매크로 함수를 사용하는 예제입니다.
사용 예
//C언어 표준 라이브러리 함수 가이드
//int isgreater(real-floating x, real-floating y); x>y 매크로 함수
//int isgreaterequal(real - floating x, real - floating y); x>=y 매크로 함수
//int isless(real-floating x, real-floating y); x<y 매크로 함수
//int islessequal(real-floating x, real-floating y); x<=y 매크로 함수
//int islessgreater(real-floating x, real-floating y); (x>y)||(x<y) 매크로 함수
//int isunordered(real-floating x, real-floating y); (isnan(x)||isnan(y)) 매크로 함수
//int fpclassify(real-floating x); x가 어떤 종류의 값인지 판별
//int isfinite(real - floating x); x가 inf가 아닌지 판별
//int isnan(real-floating x); x가 nan인지 판별
//int isinf(real-floating x); x가 inf인지 팔별
//int signbit(real-floating x); x가 음수인지 판별
//math.h 에서 제공하는 매크로 판별식 사용
#include <math.h>
#include <stdio.h>
int main(void)
{
double d1 = 1.0, d2 = 0.0, d3=-1.0;
double d4 = d1 / d2;//inf
double d5 = nan("");//nan
printf("%f>%f : %d\n",d1,d2, isgreater(d1,d2));
printf("%f>=%f : %d\n",d1,d2, isgreaterequal(d1,d2));
printf("%f<%f : %d\n",d1,d2, isless(d1,d2));
printf("%f<=%f : %d\n", d1, d2,islessequal(d1, d2));
printf("%f>%f || %f<%f : %d\n", d1,d2,d1,d2,islessgreater(d1, d2));
printf("%f or %f is nan: %d\n",d1,d5, isunordered(d1, d5));
printf("실수 분류 (nan:%d, inf:%d, normal:%d, subnormal:%d, zeor:%d)\n",
FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO);
printf("%f 분류: %d\n", d1, fpclassify(d1));
printf("%f 분류: %d\n", d2, fpclassify(d2));
printf("%f 분류: %d\n", d3, fpclassify(d3));
printf("%f 분류: %d\n", d4, fpclassify(d4));
printf("%f 분류: %d\n", d5, fpclassify(d5));
printf("%f is finite: %d\n", d4, isfinite(d4));
printf("%f is nan: %d\n", d5, isnan(d5));
printf("%f is infinite: %d\n", d4, isinf(d4));
if (signbit(d3))
{
printf("%f is 음수\n", d3);
}
else
{
printf("%f is 양수\n", d3);
}
return 0;
}
출력
1.000000>0.000000 : 1
1.000000>=0.000000 : 1
1.000000<0.000000 : 0
1.000000<=0.000000 : 0
1.000000>0.000000 || 1.000000<0.000000 : 1
1.000000 or nan is nan: 1
classify (nan:2, inf:1, normal:-1, subnormal:-2, zeor:0)
1.000000 classify: -1
0.000000 classify: 0
-1.000000 classify: -1
inf classify: 1
nan classify: 2
inf is finite: 0
nan is nan: 1
inf is infinite: 1
-1.000000 is 음수
사용한 함수
[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - printf
앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요.
2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다.
'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글
isblank (0) | 2016.05.10 |
---|---|
isalpha (0) | 2016.05.10 |
isalnum (0) | 2016.05.10 |
ctype.h (0) | 2016.05.10 |
assert.h (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 |
nextafter, nextafterf, nextafterl (0) | 2016.05.10 |