最近看直播上很多买车贷款的,说贷款125000,每月还款3680,还款3年(36期),说利率年华只有百分之2,我想说的是,上过初中的都知道这个数学题计算错了;
他的计算公式是125000*0.02 = 2500,
每年的还款利息,3年就时2500*3=7500;
然后125000+7500=132500
最后每个月还款132500 / 38 = 3680;
这里的错误就是本金在减少,而利息是按照原有的本金计算的,所以利率会高出所谓的 2%很多,那么我们就计算下真实的利率是多少?
实际利率 = ((还款总额 / 贷款本金) ^ (1 / 还款期数) - 1) * 100
其中:
- 还款总额是所有还款的总金额,即每期还款金额乘以还款期数。
- 贷款本金是贷款的原始金额。
- 还款期数是贷款的还款期数。
下面我贴出C#计算的代码
using System;
public class Program
{
public static void Main()
{
double loanAmount = 125000; // 贷款本金
double monthlyPayment = 3680; // 每月还款金额
int numberOfPayments = 36; // 还款期数
double interestRate = CalculateInterestRate(loanAmount, monthlyPayment, numberOfPayments);
Console.WriteLine("实际利率: " + interestRate.ToString("0.00") + "%");
}
public static double CalculateInterestRate(double loanAmount, double monthlyPayment, int numberOfPayments)
{
double epsilon = 0.0001; // 迭代的收敛精度
double interestRate = 0.05; // 初始猜测利率
while (true)
{
double balance = loanAmount;
double monthlyRate = interestRate / 12;
double derivative = 0;
for (int i = 0; i < numberOfPayments; i++)
{
double interest = balance * monthlyRate;
double principal = monthlyPayment - interest;
balance -= principal;
// 计算利率导数
derivative += principal * Math.Pow(1 + monthlyRate, numberOfPayments - i - 1);
}
double error = balance - 0; // 计算误差,目标是使贷款余额接近零
if (Math.Abs(error) < epsilon)
{
break;
}
interestRate -= error / derivative; // 使用牛顿-拉夫逊法更新利率的值
}
return interestRate * 100;
}
}
这里计算出的真实利率应该是 实际利率: 3.82%
所以,小伙伴们,不要被销售忽悠了