Я делал программу, которая округляет числа с различными десятичными знаками, так как пример 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 >> не будет автоматически округляться, и я нахожу маловероятным, что какой-то код из предыдущей программы все еще находится в памяти и противоречит этому коду.
, который снова вряд ли прав?
Я использую Visual Studio 2010 на win7
Спасибо за помощь, выглядит как setprecision rounds, и я закончил тем, что потратил час на создание кода для округления с математикой, благодаря кучам для быстрых ответов. – Joseph