두 부분으로 입력을 가져온 다음 분수 부분을 추출하기 위해 유형 변환하고 있습니다. 그러나 입력이 작은 숫자 인 경우 4294967295.2
을 사용하면 소수 부분이 검색되지만 더 큰 숫자를 입력하면 소수 부분이 0이됩니다. 나는 그것이 몇 가지 일이라는 것을 알고 있지만, 나는이 물건에 조금 새로운 것입니다. 입력 번호가 9007199254740991.2
일 때 분수 부분을 0으로 만드는 이유는 무엇입니까? 여기에 코드입니다 :C++의 double에서 분수 부분 검색
unsigned long long first,second;
double a,b,remainderA,remainderB;
cout << "Enter first number:\n"<< endl;
cin>> a;
cout << "\nEnter second number:\n"<< endl;
cin >> b;
first=(unsigned long long) a;
second=(unsigned long long) b;
remainderA=a-first;
remainderB=b-second;
cout<<remainderA<<endl;
감사
참조 : [모든 컴퓨터 과학자가 부동 소수점에 대해 알아야 할 사항] (http://docs.oracle.com/cd/E19957-01/806-3568/) ncg_goldberg.html) –