다음 프로그램을 실행하려고하는데 작동하지만 소수점 이하 6 자리를 입력하면 반올림되거나 잘린 상태로 유지됩니다. 2.999999 -> 3. 어떻게하면 멈추게 설정합니까?입력 한 숫자 만 유효 숫자 6 자로 읽습니까?
int main()
{
double n=0, x=0;
while (cin >> n >> x) //will keep going until an integer is not entered
{
cout << "You entered the two integers " << x << " and " << n << endl;
if (x-n <= (1.0/10000000) && n-x <= (1.0/10000000))
cout << "The numbers are almost equal" << endl;
}
return 0;
}
당신이 입력을 절단/반올림, 또는 대신 출력에 무슨 일이 일어나고 있는지 있습니까? IIRC, doubles에 대한'cout'의 표준 형식은 달리 말해서 적절한 플래그를 설정하지 않는 한 6 자리 정도를 기본으로합니다 ... – twalberg
예지 출력에서 발생합니다 ... – Physbox
두 가지 제안 사항. 첫째, 주석과 텍스트는 "정수"를 참조하지만 값은 double 유형입니다. 이것은 아마도 수정되어야합니다. 둘째, 'abs (x - n);'을 사용하면 테스트가 더 간단해질 수 있으므로 테스트가 하나만 필요합니다. –