- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想每周/每两周/每月/每年复利一次。
我还想要一个可以添加存款金额的选项。
我已经尝试过计算最终应计金额的标准公式,如下所示:
(来源:gstatic.com)
例如,这是我计算每周复利的方法:
function calculateWeekly(state: any) {
const { savings, deposit ,interest, timePeriodSelector, timePeriodLength } = state;
let numberOfYears = 0;
if (timePeriodSelector === "weekly") {
numberOfYears = timePeriodLength / weeksInAYear;
} else if (timePeriodSelector === "fortnightly") {
numberOfYears = (timePeriodLength / weeksInAYear) * 2;
} else if (timePeriodSelector === "monthly") {
numberOfYears = (timePeriodLength / weeksInAYear) * weeksInAMonth;
} else if (timePeriodSelector === "annually") {
numberOfYears = (timePeriodLength / weeksInAYear) * weeksInAYear;
}
const weeklyRate = interest / 100 / weeksInAYear;
const lengthOfCompunding = numberOfYears * weeksInAYear;
let startingFigure = parseInt(savings) + parseInt(deposit);
//total gets added on for every time cycle of week
let total =
(startingFigure * (Math.pow(1 + weeklyRate, lengthOfCompunding) - 1)) / weeklyRate;
return roundToTwoDP(total);
}
上述代码的问题在于每次产生利息时都会将存款添加到计算中。因此,连续 10 周每周存入 10 美元实际上会加起来达到 100 美元。
我在这里尝试了一种每周使用循环来累积利息的方法:
// loops how many times to compound the interest
for(let i = numberOfYears - (1/weeksInAYear); i > 0; i-= (1/weeksInAYear)){
let interestGained = (total * (Math.pow((1 + weeklyRate), lengthOfCompunding))) - total;
total += interestGained + savings;
}
感谢您的帮助!
最佳答案
这应该做你想做的:
const range = (min, max) => {
const size = 1 + max - min
return [...Array(size).keys()].map(n => n + min)
}
const weeksInAYear = 52
const addWeeklyInterest = interestRatePerWeek => (savings, _) => savings + savings * interestRatePerWeek
const calculateTotal = (savings, numberOfYears, interestRatePerWeek) => {
const numberOfWeeks = numberOfYears * weeksInAYear
return range(1, numberOfWeeks).reduce(addWeeklyInterest(interestRatePerWeek), savings)
}
console.log(calculateTotal(1000.00, 1, 0.02))
输出为 2800.328185448178
。出于显示目的,您可能希望将其四舍五入,但也请记住,如果准确性很重要,则不能使用 float 。
关于javascript - 每月与存款复利,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642627/
我有一个银行余额文本字段,我想根据存款/取款不断更新。这是我的代码: Bank Balance: Deposit Withdraw var balance = document.getEl
我对让 BankAccount 类实现安全提款/存款功能有疑问。到目前为止,当您向bankAccount 类提款或存款时,它会打印日志。无论如何,我的问题是如何实现安全性,例如您提取的金额不得超过您银
假设我有一个合约函数,它期望通过某个交易发送一定数量的near,该函数称为create_order , create_order需要几个论点。 我在前端以 myContract 的名称设置了我的契约(
我有一个java作业。我的任务是建立一个可以取款、存款和查询余额的银行。我的问题是,我无法在存款和取款后更新我的余额......我已经尝试了我能做的一切,但仍然无法理解逻辑。有人可以帮助添加到我的程序
我用 WooCommerce Deposits插件并希望隐藏除“本地取货”运输方式之外的所有其他运输方式,如果客户选择支付定金。 客户可以在产品页面上选择是支付 10% 的定金还是支付订单的全额。运输
我有这个 Lua 脚本,它应该创建一个新类,创建一个实例并调用函数,但是在我实际调用方法时出现错误。 Account = { balance = 0, new = function(s
我是一名优秀的程序员,十分优秀!