Language/C
[따배씨] 3.12 부동소수점형의 한계
migrationArc
2021. 5. 11. 18:07
따배씨 - 따라하며 배우는 C언어
3강 데이터와 C 언어
3.12 부동소수점형의 한계
#include <stdio.h>
#include <float.h>
#include <math.h>
int main()
{
// round-off errors (ex1) - 너무 큰숫자와 상대적으로 작은 숫자의 합의 계산이 되지 않음
float a, b;
a = 1.0E20f + 1.0f;
b = a - 1.0E20f;
printf("%f\n", b); // 0.000000
// round-off errors (ex2) - 2진수를 사용하는 부동 소수점 표현법에서는 0.01 을 표기 하지 못함
float c = 0.0f;
for (int i = 0 ; i < 100; i++){
c = c + 0.01f;
}
printf("%f\n", c); // 0.999999
// overflow
float max = 3.042823466e+38f;
printf("%f\n", max);
max = max * 100.0f;
printf("%f\n", max); // inf 출력, infinite: 표현 할 수 없는 큰 숫자
// underflow
float min = 1.401298464e-45f;
printf("%e\n", min);
min = min / 2.0f;
printf("%e\n", min); // 0.000000e+00 출력, subnormal: 부동 소숫점 형의 정밀도로 표현할수 없는 작은 숫자
float f = 104.0f;
f = f/0.0f;
printf("%f\n", f); // inf 출력
f = asinf(2.0f); // arc sin
printf("%f\n", f); // nan 출력, Not A Number: 수학적으로 존재하지 않는 값
return 0;
}
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
실리콘 밸리의 프로그래머 : 네이버 블로그
안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.
blog.naver.com
http://www.inflearn.com/course/following-c
홍정모의 따라하며 배우는 C언어 - 인프런 | 강의
'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원
www.inflearn.com