嘿我试图根据贷款金额,利率和年数来计算每月还款。
我已经提出以下建议,但是我的计算与互联网上的其他贷款计算器之间似乎存在差异。我的测试数据是1000美元的贷款金额,1年期间的5%利息。这给了我每月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;
我使用的公式是否正确或是否有错误?
任何帮助都将不胜感激。
非常感谢
答案 0 :(得分:4)
我有点无聊,所以我将internet中的每月费率公式放入使用NSDecimalNumber的代码中。
正如您将看到的,使用NSDecimalNumbers是一个很大的问题。但是您正在编写财务软件,而您的客户希望结果是正确的 再一次,我指的是Marcus Zarras的文章DON’T BE LAZY WITH NSDECIMALNUMBER (LIKE ME)。
享受。
NSDecimalNumber *loan = [NSDecimalNumber decimalNumberWithString:@"25000"];
NSDecimalNumber *annualInterestRate = [NSDecimalNumber decimalNumberWithString:@"6"]; // 6%
annualInterestRate = [annualInterestRate decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"100"]]; // 0.06 i.e. 6%
NSInteger numberOfPayments = 36;
// (loan * (interest / 12)) / (1 - (1 + interest / 12) ^ -number)
// ^^^^^^^^^^^^^ temp1
// ^^^^^^^^^^^^^^^^^^^^^^^^ temp2
// ^^^^^^^^^^^^^ temp1
// ^^^^^^^^^^^^^^^^^^^ temp4
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ temp5
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ temp6
NSDecimalNumber *temp1 = [annualInterestRate decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"12"]];
NSDecimalNumber *temp2 = [temp1 decimalNumberByMultiplyingBy:loan];
NSDecimalNumber *temp4 = [[NSDecimalNumber one] decimalNumberByAdding:temp1];
NSDecimalNumber *temp5 = [[NSDecimalNumber one] decimalNumberByDividingBy:[temp4 decimalNumberByRaisingToPower:numberOfPayments]];
NSDecimalNumber *temp6 = [[NSDecimalNumber one] decimalNumberBySubtracting:temp5];
NSDecimalNumber *monthlyRate = [temp2 decimalNumberByDividingBy:temp6];
NSLog(@"Monthly rate: %@", monthlyRate);
希望它是正确的。我通常不必处理NSDecimalNumbers。
答案 1 :(得分:0)
这是您计算每月付款的方式。
NSDecimalNumber monthlyPayment = LoanAmount * interestRateDecimal / (1 - (pow(1/(1 + interestRateDecimal), months)));
我建议也使用NSDecimalNumbers。