이는 면접에서 자주 물어보는 질문이며 a답변이 아닌 b 답변이 나오는 경우가 많기에 작성하게 되었습니다.
int는 정수형 값 타입 변수이고 float는 실수형 값 타입 변수이기에 정수만을 표현하고자 하면 int, 실수도 표현 하고자 하면 float를 사용하면 됩니다.
int와 float는 똑같이 4Byte(32Bit) 이지만 값을 저장하는 방법이 다르기 때문에 값의 범위가 다릅니다.
int는 앞자리 1bit를 제외한 모든 수(31Bit)가 수를 표현합니다. - -2,147,483,648 ~ 2,147,483,647
float는 부동 소수점 표현방식을 사용해서 앞자리 1Bit는 부호부, 1Byte(8Bit)는 지수부, 23Bit는 가수부 입니다. 가수부는 1.0 ~ 2.0의 수를 표현하며 지수부는 단위를 표시 합니다.
그래서 최대값 2 * 2^127을 표현 할 수 있습니다.
가수부의 최대값 2, 단위를 표시하는 지수부 최대값 127
이는 설계적으로 정밀도와 범위의 차이가 나타나는 이유를 설명한 것입니다.