您的位置:首页 > Web前端 > JavaScript

时间久了基础都忘了吧,来回顾一下javascript节点吧!

2015-07-08 20:00 706 查看
      在excel里有个函数RATE是求实际利率的,在网上搜罗了半年,公式倒是找到不少,可以没有一个实现的算法,郁闷,自己研究,写一个出来,做个备忘

 

 

公式:



上面的太复杂,来个简单的:



使用JAVA求实际利率

/**
* 实际利率法
* @author Bean(mailto:mailxbs@126.com)
* @param a 现值
* @param b 年金
* @param c 期数
* @param cnt 运算次数
* @param ina 误差位数
* @return 利率
*/
public static double rate(double a,double b,double c,int cnt,int ina){
double rate = 1,x,jd = 0.1,side = 0.1,i = 1;
do{
x = a/b - (Math.pow(1+rate, c)-1)/(Math.pow(rate+1, c)*rate);
if(x*side>0){side = -side;jd *=10;}
rate += side/jd;
}while(i++<cnt&&Math.abs(x)>=1/Math.pow(10, ina));
if(i>cnt)return Double.NaN;
return rate;
}
public static void main(String agrs[]) {
{
Double 现值 = 7944760.00d;
Double 年金 = 186627.21d;
Double 期数 = 48d;

//计算200次,比Excel20次要精确,误差精确到小数点后10位
System.out.println(rate(现值,年金,期数,200,10));
}
}

 计算输出0.00501013209570014,与Excel的0.00501013309186311很接近了,偷乐一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: