실수 자료형에 대해 궁금증이 있습니다
, 박 종현님이 작성
공부하다 보니
float에 대해 궁금 증이 생겼습니다
float num1 = FLT_MIN
flat num2 = FLT_MAX
의 최솟값 최대값을 구해서
최솟값은 100000000.0 나누기
최댓값은 1000.0 곱하기
할시에 언더플로우 오버플로우가 발생을 하였는 데요
우리가 정수에서 언더플로우 오버플러우 했을때는 진짜 +1 만 해도 오버 플로우가 발생을 하였는데요
21억 + 1
위의 실수값 float는 왜 저렇게 높은 수를 곱하고 나눠야만 오버플로우 언더 플로우가 발생하나요
시험해보니 최댓값은 10만 곱해도 오버플로우가 발생을 합니다
근데 최솟값은 저값을 나눠야만 무조건 발생 하길래 저희가 구한값이 최솟값으면 10으로만 나누어도 언더 플로우가 발생 되어야 정상이 아닌가 하는 궁금 증이 생겨 연락 드립니다 감사합니다
회신: 실수 자료형에 대해 궁금증이 있습니다
, 도장_ 관리자님이 작성2진수를 사용하는 컴퓨터에서 정수와 실수를 표현하는 방식에 차이가 있어서 그렇습니다.
그림 8-1처럼 부동소수점은 가수, 기수, 지수로 표현합니다. 따라서 이 범위로 표현할 수 있는 숫자인지 여부에 따라 오버플로우나 언더플로우가 발생합니다.
2진수 컴퓨터에서 표현 범위에 따른 문제는 '컴퓨터 구조'에서 더 자세히 다룹니다.(매우 전문적이고, 깊이 있게 다뤄집니다)
컴퓨터 구조 관련 도서 보기: https://goo.gl/cZqq94