More actions
== float.h == 조사 : 하기웅
== Floating Point ==
| 상수 | 의미 | 상수값 |
| FLT_DIG | float형에서 유효숫자의 최소 개수 | 6 |
| DBL_DIG | double형에서 유효숫자의 최소 개수 | 15 |
| LDBL_DIG | long double형에서 유효숫자의 최소 개수 | 15 |
| FLT_EPSILON | 1.0과 더했을 때 float형으로 1.0이 되지 않을 최소의 값 | 1.192092896e–07F |
| DBL_EPSILON | 1.0과 더했을 때 double형으로 1.0이 되지 않을 최소의 값 | 2.2204460492503131e–016 |
| LDBL_EPSILON | 1.0과 더했을 때 long double형으로 1.0이 되지 않을 최소의 값 | 2.2204460492503131e–016 |
| FLT_GUARD | . | 0 |
| FLT_MANT_DIG | float형 floating point로 표현 할 수 있는 significand의 비트 수 | 24 |
| DBL_MANT_DIG | double형 floating point로 표현 할 수 있는 significand의 비트 수 | 53 |
| LDBL_MANT_DIG | long double형 floating point로 표현 할 수 있는 significand의 비트 수 | 53 |
| FLT_MAX | float형으로 표현할 수 있는 가장 큰 floating point 값 | 3.402823466e+38F |
| DBL_MAX | double형으로 표현할 수 있는 가장 큰 floating point 값 | 1.7976931348623158e+308 |
| LDBL_MAX | long double형으로 표현할 수 있는 가장 큰 floating point 값 | 1.7976931348623158e+308 |
| FLT_MAX_10_EXP | float형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 | 38 |
| DBL_MAX_10_EXP | double형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 | 308 |
| LDBL_MAX_10_EXP | long double형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 | 308 |
| FLT_MAX_EXP | float형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 | 128 |
| DBL_MAX_EXP | double형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 | 1024 |
| LDBL_MAX_EXP | long double형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 | 1024 |
| FLT_MIN | float형으로 표현할 수 있는 가장 작은 양의 floating point 값 | 1.175494351e–38F |
| DBL_MIN | double형으로 표현할 수 있는 가장 작은 양의 floating point 값 | 2.2250738585072014e–308 |
| LDBL_MIN | long double형으로 표현할 수 있는 가장 작은 양의 floating point 값 | 2.2250738585072014e–308 |
| FLT_MIN_10_EXP | float형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –37 |
| DBL_MIN_10_EXP | double형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –307 |
| LDBL_MIN_10_EXP | long double형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –307 |
| FLT_MIN_EXP | float형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –125 |
| DBL_MIN_EXP | double형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –1021 |
| LDBL_MIN_EXP | long double형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 | –1021 |
| FLT_NORMALIZE | . | 0 |
| FLT_RADIX | float형 floating point의 기수 | 2 |
| _DBL_RADIX | double형 floating point의 기수 | 2 |
| _LDBL_RADIX | long double형 floating point의 기수 | 2 |
| FLT_ROUNDS | float형에서 반올림 형식을 지정 | 1 (near) |
| _DBL_ROUNDS | double형에서 반올림 형식을 지정 | 1 (near) |
| _LDBL_ROUNDS | long double형에서 반올림 형식을 지정 | 1 (near) |
== 부연 설명 ==
floating point(부동 소수점 표기)
- float형 부동 소수점 표기의 비트 자리수에 따른 내용::
| 31 | 30-23 | 22-0 |
| sign | exponent | significand |
- double형 부동 소수점 표기의 비트 자리수에 따른 내용::
| 63 | 62-52 | 51-0 |
| sign | exponent | significand |
FLT_DIG
float형에서 유효숫자의 최소개수. 이 매크로의 값은 ANSI C에서, 적어도 6으로 지원되고 있다.
FLT_EPSILON
- 0 + FLT_EPSILON != 1. 0이 참인 float형의 플로팅 포인트 수의 최소 양의 수이다. 1E-5보다 크지 않다.
FLT_MANT_DIG
float형에서 가수부를 표현하는데 사용되는 비트수. 다음 표현식은 가수부 숫자들의 제한된 수 때문에 1. 0이 나온다(수학적으로는 그것이 될 수 없을 지라도): float radix = FLT_RADIX;
- 0f + 1. 0f / radix / radix / . . . / radix
여기서 radix는 FLT_MANT_DIG 번 나타난다.
FLT_MAX
이 매크로의 값은 float형이 표현할 수 있는 최대 수를 의미한다. 이것은 적어도 1E+37이 된다. 값 자체도 float형을 갖는다. 표현 가능한 가장 작은 수는 -FLT_MAX가 된다.
FLT_MIN
이 매크로의 값은 float형이 표현할 수 있는 표준화된 양의 플로팅 포인트 수의 최소값. 그 값은 1E-37보다 크지 않다.
FLT_MIN_EXP
이것은 float형을 위해서 가능한 지수값으로 가장 작은 값이다. 더 자세하게는, FLT_RADIX에서 1을 뺀 값이 float형으로써 일반화된 플로팅 포인트 수로써 표현될 수 있는 최소 음의 정수이다.
FLT_MIN_10_EXP
지수부의 최소범위. -37이거나 그보다 적다.
FLT_MAX_EXP
float이 표현할 수 있는 지수의 최대값.
FLT_MAX_10_EXP
float형에서 베이스가 10일 때 표현할 수 있는 지수의 최대값. 이것은 적어도 37이다.
FLT_RADIX
이것은 지수부의 베이스(base) 또는 기수(radix)의 값이다. 이것은 이 절에 설명된 다른 매크로와는 달리 상수 표현식임이 보장된다. IBM 360과 그곳에서 파생된 제품을 제외하고는 모든 기계에서 2로 되어있다.
FLT_ROUNDS
이 값은 반올림 형식을 지정하는 값이다. 다음 값은 표준 반올림 모드를 나타낸다.
| 숫자 | 의미 |
| -1 | 반올림하지 않는다. |
| 0 | 소수점 뒤를 0으로 만든다. |
| 1 | 가장 가까운 수로 반올림한다. |
| 2 | 무한대로 양의 값을 향한다. |
| 3 | 무한대로 음의 값을 향한다. |
이 이외의 값은 기계_의존적인 비표준 반올림 모드를 나타낸다. 대부분의 기계에서, 그 값은 IEEE 표준에 따라서 1로 되어있다. 다음은 FLT_ROUNDS의 값에 따라서 값들이 어떻게 변하는지를 보여주는 테이블이다,
| . | 0 | 1 | 2 | 3 |
| 1. 00000003 | 1. 0 | 1. 0 | 1. 00000012 | 1. 0 |
| 1. 00000007 | 1. 0 | 1. 00000012 | 1. 00000012 | 1. 0 |
| -1. 00000003 | -1. 0 | -1. 0 | -1. 0 | -1. 00000012 |
| -1. 00000007 | -1. 0 | -1. 00000012 | -1. 0 | -1. 00000012 |