excel CUMIPMT。功能在javascript [英] excel CUMIPMT. function in javascript
本文介绍了excel CUMIPMT。功能在javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
解决方案
这是伪代码,你需要调整它:
对象CUMIPMT(double rate,double nper,double pv,double start_period,double end_period,double type)
{
if(rate< = 0)
{
返回#NUM!;
}
如果(nper <= 0)
{
返回#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)
{
返回#NUM!;
}
if(!(type == 0 || type == 1))
{
return#NUM!;
}
double value = 0;
(int per =(int)start_period; per< =(int)end_period; per ++)
{
value + = IPMT(rate,nper,per,pv,0,type );
}
返回值;
}
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)/率))*率*(-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))
);
}
}
Does anyone know how to implement the excel CUMIPMT function in javascript. I found this code but it seems to be missing some functions.
解决方案
This is pseudocode, you will need to adjust it:
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))
);
}
}
这篇关于excel CUMIPMT。功能在javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文