이론상 2^23 -1 까지 표현가능


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
    int n = 0x007fffff;
 
    printf("가수부 : %d ", n);
 
    float a = 8388.6072;
    float b = 8488.6072;
    float c = 1010.1012;
    float d = 1010.1013;
    float e = 5010.1012;
    printf("a = %.4f b = %.4f c = %.4f d = %.4f e = %.4f ", a, b, c, d, e);
    
    return 0;
}
 
 
cs





8388607 보다 더 큰 8488607도 인식을 한다.

이론적인 2^23-1 보다 더 많은 가수부를 가지는거로 판단되는데


8자리인가 해서 10101012와 10101013은 정확히 들어옴

그러나 숫자가 올라가는 50101012는 쓰레기값이 나옴.


그렇다면 float 변수끼리 비교연산을 하면 몇번째 7번째 짜리까지 유효숫자로 판단하여 연산을 하는건지 궁금