|
서영재 님이 쓰신 글 :
: int i1,i2 가 아니라
: double나 float아닌가여?
:
: 저두 간단하게 나마 테스트를 해봤는데, 결과가 49,와 48이나오더군요
: 하지만 정석은 소수는 double나 float 이니깐...
:
: ps. C++Builder의 버그라고도 할수있겠네요 터보C에선 48,48로 나오는데...
: 48이나49나 같은 숫자가 나와야할터인데...
:
:
-----------------------------------------------------------------------------
시간을 내어 읽어 주셔서 감사합니다.
int i1, i2를 제가 잘못 선언한게 아니고요 C/C++ 언어에서의 int형의 변수에
float나 double의 결과값을 대입시 소수점 이하의 처리문제에 대해 궁금해서
올린 글입니다. 일반적으로 int형 변수의 i1에 i1 = 49.0을 대입하면 i1=49가 그대로 대입됩니다.
또 i1=49.1234와 같이 소수점이하를 붙여도 i1= 49와 같이 소수점 이하를 절삭하는 것이
묵시적인 원칙으로 알고 있었는데 우측의 연산결과값이 누가봐도 49.0이 확실한데도 48이
대입되는 것은 제 짧은 생각에 컴파일러 내부 알고리즘에 문제가 있지 않나 하여 문의 드린 것입니다.
Visual C++에서는 초지일관 49가 대입되는 것을 볼때 말입니다.
---감사합니다 -꾸벅- --- 즐거운 하루되세요...
|