мой цикл while не будет работать на условиях, которые я задал.C++ while loop не работает
Цель программы - определить количество лет, в течение которых будет произведена внесенная сумма, с использованием суммы депозита, процентной ставки и целевой суммы.
Программа просто останавливается после ввода целевой суммы, если я не изменил оператор while из < = to> =, и в этом случае он запускает цикл, но возвращает количество лет, установленных в раунде 100 или 1000 и т. Д. .
#include <iostream>
#include <iomanip>
#include <string>
#include <math.h>
using namespace std;
int main()
{
//declare the variables
double rate,
balance = 0;
int deposit,
target,
years = 0;
cout << "****Lets make you some money!****" << endl << endl;
//input from the user
cout << "What is your deposit amount?: " << endl;
cin >> deposit;
cout << "What is your interest rate?: " << endl;
cin >> rate;
cout << "What is you target savings amount?: " << endl;
cin >> target;
rate = rate/100;
while (balance <= target); //when i change this to balance >= target the 'while' runs but just returns years divisible by 100
{
// calculation
balance += deposit * pow((1 + rate), years);
//balance = balance*(1 + rate) + deposit; // alternate calculation
//years++;
//users savings target
cout << "You will reach your target savings amount in: " << balance << " years." << endl << endl << " That's not that long now is it?" << endl;
}
return 0;
}
Заранее благодарен!
Вы используете отладчик? Установите точку останова и проверьте состояние вашей программы. Какова фактическая ценность 'balance' и' target'? Откуда они получают свои ценности? – Dai
Это может быть пробным, так как вы сравниваете int с двойным. –
@ 445646 А что в этом проблема, в данном случае? (Существует возможная проблема, потому что он использует 'double' для денежных значений. Но его реальная числовая проблема - это то, как он вычисляет баланс. По крайней мере, мне бы хотелось иметь сберегательный счет, где баланс был рассчитан именно так.) –