예를 들어 2001.3666이 2001.37로 끝나기 때문에 여러 자릿수로 숫자를 올림하는 프로그램을 만들었습니다. 0.005를 곱한 후 100을 더하고 int로 변환 한 다음 다시 100으로 나눕니다.C++ 프로그램이 예상대로 작동하지 않을 때 double이 변환되어서는 안되는 경우
모든 것이 잘 작동하고, 아무런 문제도없고, 몇 가지 루프를 만들고 재미있는 것이 있었지만, 모든 것이 이상해졌습니다.
사용자가 입력 한 내용을 반복하여 사용자가 입력 한 실제 숫자 대신 반올림 한 숫자를 표시하는 프로그램의 첫 번째 줄이 표시됩니다.
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "enter: ";
double numberWithDecimalPlaces;
cin >> numberWithDecimalPlaces;
cout << "you entered " << numberWithDecimalPlaces << endl;
system("pause");
return 0;
}
내가 2001.3666에 입력하고 프로그램이 간다 : 나는 새로운 프로젝트를 시작하고 신속하게하기 때문에, 그것은 내 코드 아니었다 결론에 도달 한 동안이 코드를 만든 후
나는에 그 코드 및 2001.37
정확한 출력 응답하지 않은 경우에도 줄 바꿈은 다음과 같습니다
enter: 2001.3666
you entered 2001.37
지금이 어떤없이 새로운 프로젝트에 새로운 프로그램입니다 cin >> 변수가 자동으로 반올림되지 않는 한, 이전 프로그램의 일부 코드가 여전히 메모리에 있고이 코드와 충돌하는 것처럼 보이지 않는 한, 이전 프로젝트와 동일한 변수 이름과 사용자 입력 값이 반올림됩니다.
다시는 그렇지 않을 수도 있습니다. ??
내가 표시 할 때 종종 반올림 WIN7에
도움을 주셔서 감사합니다. 그 자체가 setprecision처럼 보이고, 저는 수학으로 반올림하기 위해 코드를 만드는 데 시간을 보내고, 빠른 답장을 보내 주셔서 감사합니다. – Joseph