Эй, я пытаюсь рассчитать ежемесячные выплаты на основе суммы кредита, процентной ставки и количества лет.Как рассчитать погашение кредита
У меня появилось следующее, однако, похоже, разница между моими расчетами и другими калькуляторами займов в Интернете. мои данные теста составляли сумму кредита в размере 1000 долларов США, 5 процентов - в течение 1 года. это дает мне ежемесячный платеж в размере 85,61 и общую сумму 1027,29
Вот код, который вычисляет это.
double LoanAmount = la; //loan amount
double InterestRate = ir; //interest rate
double NumberOfYears = noy; //number of years
double interestRateDecimal = InterestRate/(12 * 100);
double months = NumberOfYears * 12;
double rPower = pow(1+interestRateDecimal,months);
monthlyPayments = LoanAmount * interestRateDecimal * rPower/(rPower - 1);
totalPayments = monthlyPayments * months;
yearlyPayments = monthlyPayments * 12;
totalInterest = totalPayments - LoanAmount;
Является ли формула я использую правильно или есть ошибки?
Любая помощь будет оценена по достоинству.
Большое спасибо
Прежде всего: не используйте двойной, если кто-то платит за этот кредит в реальной жизни. Используйте [NSDecimalNumber] (https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDecimalNumber_Class/Reference/Reference.html) См. [Вопрос «Должен ли я использовать NSDecimalNumber для работы с деньги? »] (http://stackoverflow.com/questions/421463/should-i-use-nsdecimalnumber-to-deal-with-money) по причинам –
спасибо за отзыв, я посмотрю на это. Кстати, какая разница? как в том, что произойдет, если кто-то заплатит за этот кредит в реальной жизни. – user1214037
@ пользователь1214037: разница в точности. Нужно ** НИКОГДА не использовать переменную float в приложении, которая занимается финансами. Вы всегда используете своего рода целое число для наименьшего количества денег в валюте, с которой работаете. Вы можете преобразовать только float при отображении конечного результата. –