gpt4 book ai didi

JavaScript - 总通货膨胀/升级超过 X 年

转载 作者:行者123 更新时间:2023-11-30 11:10:59 25 4
gpt4 key购买 nike

我一直在构建一个 JS 计算器来帮助支付年费,但我在努力解决一个问题。

有一个字段应显示 Y 年每年增加 X% 的年费总额。

有点难以解释,所以下面是一个例子:

A 的薪水为 24,000 英镑,每年增加 3.5%。我们需要计算出 A 人在 7.373 年内获得的总报酬。

如果我在 FOR 循环中这样做,如果年份只是整数,它就可以正常工作,但是我需要一个 float 的解决方案,我不确定如何解决这个问题——我们需要计算出 7.373 年的总数而不仅仅是 7(只是一个例子,它可以是任意年数)。

下面是使用整数运行良好的测试代码:

year = 7;
money = 24000;
num = 0;
percent = 1 + (3.5 / 100);
for(y = 1; y <= year; y++) {
num = num + 1;
money = money * interest
console.log('Year '+ num + ' - ' + money);
// other stuff
}

结果输出如下:

第 1 年 - 24,840.00
第二年 - 25,709.40
第三年 - 26,609.23
四年级 - 27,540.55
五年级 - 28,504.47
六年级 - 29,502.13
7 年级 - 30,534.70

我真正需要的是所有这些年的总和(即 193,240.48),而不只是计算 7 年,而是 7.373 年(或输入的任何定义的 float )。

最佳答案

你需要再计算一年。在此示例中,您需要第 8 年。然后您可以取该年的百分比并将其添加到总和中。

在您的循环中,您可以使用 Math.ceil(year)。这将使年向上舍入,因此对于 7.373 年,您将获得 8 个循环。您可以测试去年的情况并相应地调整百分比:

let year = 7.373;
let money = 24000;
let num = 0;
let total = 0
let percent = 1 + (3.5 / 100);
for (let y = 1; y <= Math.ceil(year); y++) {
num = num + 1;
money = money * percent
if (y > year) { // year 8
// the sum will only increas .373 of year 8
money *= 1 - (y - year)
console.log(`Calculating ${1- (y-year)} of year ${y}`)
}

// increment total
total += money

console.log('Year ' + num + ' - ' + money.toLocaleString('en-GB', {
style: 'currency',
currency: 'GBP'
}));
// other stuff
}
console.log(`Total: after ${year} years:`, total.toLocaleString('en-GB', {
style: 'currency',
currency: 'GBP'
}))

此外,这里并没有真正解决它,因为这是一个不同的问题,但您需要小心处理金钱和 float ,因为舍入错误可能会导致问题。

关于JavaScript - 总通货膨胀/升级超过 X 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com