간단한 C++ 코드 :왜 조건이 발생하지 않습니까?
#include "../../std_lib_facilities.h"
#include <float.h>
double ctok(double c){
const double koef_c_2_k = 274.15;
double k = c + koef_c_2_k;
if(k < -koef_c_2_k) error("Output abroad range of admissible values.");
return k;
}
int main(){
cout << "Max double value: " << DBL_MAX << endl;
double c = 0;
cout << "Celsius: ";
cin >> c;
double k = ctok(c);
cout << "Kelvin: " << k << endl;
return 0;
}
출력 : 호스트 괜찬 @
부시 : ~/CPP/BS/5/5.2 $ ./a.out
최대 두 배 값 : 1.79769 E + 308
섭씨 : 0
켈빈 : 274.15
부시 @ 호스트 - 괜찬 : ~/CPP/BS/5/5.2 $ ./a.out
최대 double 값 : 1.79769e + 308
섭씨 : 100
켈빈 : 374.15
부시 @ 호스트 - 괜찬 : ~/CPP/BS/5/5.2 $ ./a.out
최대 double 값 : 1.79769e + 308
섭씨 : -100
켈빈 : 174.15
부시 @ 호스트 - 괜찬 : ~/CPP/BS/5/5.2 $ ./a.out
최대 double 값 : 1.79769e + 308
섭씨 : 1.79769e + 308
켈빈 : 1.79769e + 308
부시 @ host-nix : ~/cpp/bs/5/5.2 $
마지막으로 섭씨에 대한 최대 값을 설정하고 오류 메시지가 표시되기를 기다렸지 만 잘못된 켈빈 값을 받았습니다. 왜 그런 일이 일어 났습니까?
감사합니다. 당신이 바다에 물 한 잔을 추가하는 것처럼
'1.79769e + 308' +'274.15'는 바다에 물 한 컵을 넣는 것처럼 보입니다. – deepmax
이중 값이 가질 수있는 최대 값에 값을 추가하면 어떻게 될까요? 이 값이 -274.15보다 작습니까? –
**를 ** double ** 최대 값에 추가하면 최소 ** double ** 값을 얻어야합니다. 아니면 내가 옳지 않은가? –