我写了一个小jQuery兴趣calulcator。
问题是我的兴趣计算逻辑纯粹是错误的。
看看:
//Get the value - monhtly repayment
var InputedValue = $('form input[name="val1"]').val();
// 12 ,18, 24, 30, 36 - NumberOfMonths
for (var i = 12; i <= 36; i += 12) {
// j = 20 - Deposit in %
for (var j = 10; j <= 10; j += 10) {
// g = 20, 30 - InterestPerYear in %
for (var g = 10; g <= 10; g += 10) {
var InScaleOfYear = i / 12;
// Amount of payment excluding deposit
var AmountOfPayments = (InputedValue * (i - 1)); // rat bedzie o jedna mniej niz ilosc miesiecy, bo wplata poczatkowa
// Amount of payment including deposit
var AmountInTotal = (AmountOfPayments * 100) / (100 - j);
// Deposit
var Deposit = AmountInTotal - AmountOfPayments;
// Amount of payment in one year
var AmountOfPaymentInOneYear = (AmountOfPayments / InScaleOfYear);
var InterestPerYear = ((AmountOfPaymentInOneYear * g) / 100);
// Interest in total
var InterestInTotal = InterestPerYear * InScaleOfYear;
// Amount of credit
var AmountOfCredit = (AmountOfPayments + Deposit) - InterestInTotal;
$('table tbody').append('<tr><td>'
+ i + '</td><td>'
+ "at " + j + "% = " + Deposit.toFixed(2) + '</td><td>'
+ "at " + g + "% = " + InterestPerYear.toFixed(2) + '</td><td>'
+ "at " + g + "% = " + InterestInTotal.toFixed(2) + '</td><td>'
+ AmountOfPayments.toFixed(2) + '</td><td>'
+ AmountInTotal.toFixed(2) + '</td><td>'
+ AmountOfCredit.toFixed(2) + '</td></tr>');
}
}
}
你们中的任何一个人都在做类似的事吗?如何计算具有以下信息的兴趣:
i = months
)$('form input[name="val1"]').val();
)j = deposit
)g = interest rate
)正如您所看到的,循环适用于月/存款/利息。只需要在计算循环中的兴趣登录时需要一些帮助。
答案 0 :(得分:3)
主要问题是你试图通过使用非微积分方法来解决微积分问题。如果你不知道,微积分是数学的一个分支,基本上试图解决X / 0问题。在复利的情况下,贪婪的银行试图从利息中榨取尽可能多的钱。
这开始是每月的兴趣,但他们意识到,如果他们每天收费,他们可以获得更多。这与利息相同,每月10%,每天分为天数的1/3%。这是因为前一天的利息是下一个利息周期的计算(或复合)的一部分。如果他们每小时,每分钟,每秒分开,他们可以得到更多,直到它基本上变成“即时兴趣”。因此,复合兴趣诞生了。
(由于受欢迎程度和混淆,政府强制要求使用APR术语将复利利息百分比转换为我们正常人可以联系到的“年度百分比率”。因此,如果它说的是APR,那么做,这是复利。)
复利是一个X / 0问题,因为你试图获得即时的兴趣。 Wikipedia's article on compound interest应提供一些有用的公式来计算复利。但是,使用这样的公式时要记住的一件重要事情是,你不能只拿APR这样的东西除以12得到一个MPR数字。否则,它不会是复利,并不是那么简单。
答案 1 :(得分:2)
尝试下面这个页面,它还包含excel电子表格,它有很大帮助。
http://www.yorku.ca/amarshal/mortgage.htm
如果您可以按照脑海中的excel计算进行操作,则可以轻松地执行代码。
“我花了4年的时间才获得数学学位,只是让我的教授告诉我学到的东西绝对是真的但完全没用”
答案 2 :(得分:2)
你的措辞有点令人困惑。但我的理解是,你想要根据每月付款和一些利率计算一个人可以负担多少信贷。正如其他人所指出的那样,您首先需要在纸上进行此操作,以确保您对感兴趣的类型和复合期具有正确的公式。但这不是StackOverflow的意思,我们专注于编程!因此,我们假设信用卡式贷款具有复利和每月付款(您可以根据需要重写任何其他公式)。
我可以在线找到这些公式的最佳资源:Loan or Investment Formulas。此页面具有几乎任何变量预先求解的复合公式!因此,您不需要记住大学商业数学课程的介绍。好的。
所以现在我们只需要将正确的公式转换为JavaScript。这就是我们的StackOverflow观众希望看到的内容!在我们的案例中,其中:
A =(P / i)[1-(1 + i)^ - N]
完成!这可以在JavaScript中使用。一个具有舒适变量名称的漂亮的人类可读样本怎么样?
var MonthlyPaymentAmount = parseFloat($('#txtMonthlyPayment').val());
var APR = 16.9 / 100; //16.9% APR
var InterestRate = (APR / 12); //monthly interest
for (var nMonths = 12; nMonths <= 36; nMonths += 12) {
var TotalAmountOfPayments = nMonths * MonthlyPaymentAmount;
var TotalAmountOfCredit = (MonthlyPaymentAmount / InterestRate) * (1 - Math.pow((1 + InterestRate), (-nMonths)));
var TotalAmountOfInterest = TotalAmountOfPayments - TotalAmountOfCredit;
alert("Total Loan Amount: $" + TotalAmountOfCredit + "Total Paid:" + TotalAmountOfPayments + ", Interest:" + TotalAmountOfInterest);
}
答案 3 :(得分:1)
这实际上取决于您正在寻找的兴趣类型(复合/简单/等)。举个例子我看这里: http://www.hotscripts.com/search/javascript/interest
答案 4 :(得分:0)
使用公式
<强> A = P(1 + R / N)^ NT 强>
其中, 答:有兴趣的未来价值 P:原则金额 r:年利息(十进制) n:不。利息时间每年复杂化 t:没有。投入资金的年数
在接受来自用户的int值后,将' r '值转换为浮点值。提供单选按钮以选择季度,月度,年度等投资类型,因此您可以使用if条件设置“ n ”值。
因此您可以使用单一功能计算任何类型的兴趣。