Я делал программу, которая округляет числа с различными десятичными знаками, так что в качестве примера 2001.3666 получился бы как 2001.37, мне удалось сделать эту работу, добавив 0,005, затем умножив на 100 и преобразовав в целое число, а затем снова разделив на100.
Все работало нормально, проблем не возникало, было немного весело, делая несколько циклов и тому подобное, но потом все стало странным.
вы видите первую строку программы, которая повторяет то, чтопользователь набрал, начал отображать округленную цифру вместо фактической цифры, набранной пользователем.
через некоторое время я пришел к выводу, что это не мой код, потому что я начал новый проект и быстро составил этот код:
#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 >> не округляется автоматически, что мне кажется маловероятным, что какой-то код из более ранней программы все еще находится в памяти и конфликтует с этимкод.
что опять-таки вряд ли верно ??
Я использую Visual Studio 2010 на win7