값으로 1.#INF00가 출력되는 이유는 무엇인가요?
딥레드
질문 제목 : 값으로 1.#inf00가 출력되는 이유는 무엇인가요?
값으로 1.#inf00 이 출력되는 이유를 써야하는 데요
질문 내용 :5^3125 정도의 값에 대해서, 이 에러 메세지가 뜹니다.
제 생각에는 값이 너무 커져서 컴파일러가 다룰수 없는거 같은데요
이것을 전문적으로 설명할 수는 없는 건가요? 단순히 숫자가 크다고 해서 에러가 나는건 아니라고 생각해서요
좀 잘해서 내야하는 과제라 이렇게 질문 드려용~^^;;
-
겨레
친절한 답변 정말 감사드립니다^^
-
이루리
#define FLT_ROUNDS integer rvalue
#define LDBL_DIG integer rvalue = 10
#define LDBL_EPSILON long double rvalue = 10^(-9)
#define LDBL_MANT_DIG integer rvalue
#define LDBL_MAX long double rvalue = 10^37
#define LDBL_MAX_10_EXP integer rvalue = 37
#define L -
봉봉
#define FLT_DIG integer rvalue = 6
#define FLT_EPSILON float rvalue = 10^(-5)
#define FLT_MANT_DIG integer rvalue
#define FLT_MAX float rvalue = 10^37
#define FLT_MAX_10_EXP integer rvalue = 37
#define FLT_MAX_EXP integer rvalue
#define FLT_MIN float rval -
마음새
float.h
#define DBL_DIG integer rvalue = 10
#define DBL_EPSILON double rvalue = 10^(-9)
#define DBL_MANT_DIG integer rvalue
#define DBL_MAX double rvalue = 10^37
#define DBL_MAX_10_EXP integer rvalue = 37
#define DBL_MAX_EXP integer rvalue
#define DBL_MI -
어리버리
단순히 숫자가 커서 나오는 에러 맞습니다.. 맞구요~~
-
아리알찬
너무 수가 큰데요. 이 정도면 최소한 256바이트는 써야 하지 않을까요... 그런데 그런 자료형이 없는데...
-
고독
일단 5에 3125승이면 엄청난 값이 뜰것같네요.; 제가알기로도 double값의 최대가 양수에서 1.78~e308정도 값으로 알고있습니다. 저걸 단순히 표현하자면 1.78^308 인거죠. 즉 double값으로 출력될수없는값입니다 ;
때문에 컴파일러가 다룰수가없는것같군요. 만약 저값을 구하고싶다면 배열곱셈을 하시는수밖에없을듯합니다.(초보인 저의소견으로는...) 그리고 그 연산자에서의 연산가능한 최대값을 구하고싶으시다면 HUGU_VAL이라는 연산자를 사용하