float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요?

 

float와 int의 자료형(데이터 타입)이 다릅니다.
float는 소수점까지 표현할 수  있는 실수형이고,
int는 소수점이 없는 숫자까지만 표현이 가능한 정수형 이기 때문입니다.

 

float와 int는 모두 4byte (32bit)로 동일한 경우의 수를 가지고 있다고 할때

 

두 자료형을 구성하는 bit의 구조가 다른데에서 기인합니다.

int는 +,-  즉 부호 와 지수를 표현하기 만 한다면

float는 (지수 + 부호) 소수점이하인 유효자리 까지 표현 해줍니다.

 

그로인해

int는 표현할 수 있는 범위 내에선 정확도가 100%지만

float는 0에서 멀어질 수록 정밀도가 떨어지고 값을 잘라 먹습니다.

그럴때 대처 방안으로는 float를 대신하는 double을 사용하면 됩니다.

반응형