Я создаю небольшую программу для задания домашней работы. Программа работает правильно, за исключением того, что вычисление неверно.Расчет суммы оплаты автомобиля не производится правильно
Формула Я использую для расчета суммы платежа является:
Оплата = (INTRATE * (1 + INTRATE)^N/((1 + INTRATE)^N-1)) * L
Где «N» - количество платежей, а «L» - основной. Код, который я написал для этого:
monthlyPayment = (intRate * pow ((1 + intRate), numberPayments)/(intRate * pow ((1 + intRate), numberPayments)-1))*principal;
Полный код приведен ниже.
#include <iostream>
#include <string>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
double principal, intRate, paybackAmount, interestPaid, monthlyPayment;
int numberPayments;
// Change the panel color.
system ("color F0");
cout << "\n";
cout << "This application will calculate your loan amounts." << endl;
cout << "Please enter the data below." << endl;
cout << "\n";
cout << "Loan Amount: ";
cin >> principal;
cout << "Monthly Interest Rate: ";
cin >> intRate;
cout << "Number of Payments: ";
cin >> numberPayments;
cout << "\n\n\n";
monthlyPayment = (intRate * pow ((1 + intRate), numberPayments)/(intRate * pow ((1 + intRate), numberPayments)-1))*principal;
paybackAmount = monthlyPayment * numberPayments;
cout << fixed << setprecision(2) << showpoint << left << setw(24) << "Loan Amount:" << "$" << setw(11) << right << principal << endl;
cout << fixed << setprecision(1) << showpoint<< left << setw(24) << "Monthly Interest Rate:" << setw(11) << right << intRate << "%" << endl;
cout << fixed << setprecision(0) << left << setw(24) << "Number of Payments:" << setw(12) << right << numberPayments << endl;
cout << fixed << setprecision(2) << showpoint<< left << setw(24) << "Monthly Payment:" << "$" << setw(11) << right << monthlyPayment << endl;
cout << fixed << setprecision(2) << showpoint<< left << setw(24) << "Amount Paid Back:" << "$" << setw(11) << right << paybackAmount << endl;
cout << fixed << setprecision(2) << showpoint<< left << setw(24) << "Interest Paid:" << "$" << right << setw(11) << paybackAmount - principal << "\n\n" << endl;
system("pause");
}
Заранее благодарим за помощь!
Это не имеет ничего общего с этой проблемой, но сломать эту привычку 'использованием имен станд; '. Обратитесь к 'cout' как' std :: cout'. Используя квалифицированные имена, вы сэкономите большую боль в будущем. –
@PeteBecker Возможно, каждая (небольшая) программа на C++, которая использует 'std', я когда-либо писал, содержит' using namespace std; '. Это может быть не очень хорошая практика (и совершенно безответственная для крупных проектов), но она действительно делает код красивее. – Dukeling
@ Dukeling - красота в глазах смотрящего. –