gpt4 book ai didi

javascript - 超越 CUMIPMT。 JavaScript 中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:57:08 25 4
gpt4 key购买 nike

有谁知道如何用javascript实现excel CUMIPMT函数。我找到了这个code但好像缺少一些功能。

最佳答案

这是伪代码,您需要调整它:

Object CUMIPMT(double rate, double nper, double pv, double start_period, double end_period, double type)
{

if (rate <= 0)
{
return "#NUM!";
}

if (nper <= 0)
{
return "#NUM!";
}
nper = (int)nper;

if (pv <= 0)
{
return "#NUM!";
}

if (start_period < 1)
{
return "#NUM!";
}
start_period = (int)start_period;

if (end_period < 1)
{
return "#NUM!";
}
end_period = (int)end_period;

if (start_period > end_period)
{
return "#NUM!";
}

if (!(type == 0 || type == 1))
{
return "#NUM!";
}

double value = 0;
for (int per = (int)start_period; per <= (int)end_period; per++)
{
value += IPMT(rate, nper, per, pv, 0, type);
}

return value;
}

double IPMT(double rate, double nper, double period, double pv, double fv, double type)
{
if (rate == 0)
{
return 0;
}
if (type == 1 && period == 1)
{
return 0;
}
double pmt = PMT(rate, nper, pv, fv, 0);
if (type == 0)
{
return (pv * Math.Pow(1.0 + rate, period - 1) + pmt * ((Math.Pow(1 + rate, period - 1) - 1) / rate)) * rate * (-1.0);
}
else
{
double pmt2 = PMT(rate, nper, pv, fv, 1);
return pmt2 - pmt + (pv * Math.Pow(1.0 + rate, period - 2) + pmt * ((Math.Pow(1 + rate, period - 2) - 1) / rate)) * rate * (-1.0);
}

}

double PMT(double rate, double nper, double pv, double fv, double type)
{
if (rate == 0)
{
return (-1.0) * (fv + pv) / nper;
}
else
{
return (-1.0) *
((fv + pv * Math.Pow((1 + rate), nper)) *
rate /
((1 + rate * type) * (Math.Pow((1 + rate), nper) - 1))
);
}
}

关于javascript - 超越 CUMIPMT。 JavaScript 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42606570/

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