c++ float 형변환? 연산? 관련하여 질문 드립니다..
글쓴이: zzang3757 / 작성시간: 화, 2013/01/08 - 7:39오후
아래와 같은 샘플 코드가 있습니다.. ( 헤더 생략..ㅋ )
int main()
{
int n = 100000000;
float f = n;
float f1 = f - 0.059;
cout << f1 << endl;
return 0;
}
저렇게 하면 cout으로 출력되는 값은 99999999.941 이 되야하는데,,
실제 출력되는 값은 1e+08 ( 100000000 ) 이 출력됩니다..
이렇게 출력되는 이유가 궁금합니다 살려주세요....
Forums:
double이나 long double로 바꿔서
double이나 long double로 바꿔서 해보세요
double 은 잘 됩니다.. 그런데,,
실제 코드에는 double 로 하였습니다.. 그런데,, 위 코드에서 결과값이 이상한게 궁금하네요 ㅜ
부동소수점의 정확도는 소숫점의 위치와는 상관없고
부동소수점의 정확도는 소숫점의 위치와는 상관없고 숫자의 길이와 관련이 있습니다. float면 7~8자리밖에 안되죠... double는 반면에 15자리 정도까진 정확도를 유지해 줍니다.
댓글 달기