工作有一段时间了,手里有点小钱,之前都是放在余额宝里。最后在额外的时间开了一丁点金融的投资理论文章,被这些文章洗脑了,学会了定投。定投在支付宝中也是比较多的。
昨天灵机一动,想起了复利,又根据支付宝中的30天定投,360天定投,以及余额宝的收益对比了下,最后发现最后的结果就是余额宝一年的收益率比想象中的要高点,而30天定投的也是,姑且认为360天的为一年.取样2019年1月18日余额宝博时现金收益利率2.7700%,建信养老飞月宝30天收益率3.7890%,国寿安鑫盈360天4.7700%,此处姑且认为360天为一年。
代码如下:
import java.math.BigDecimal;
import java.math.MathContext;
/**
* @Author fankunfeng
* @Describe
*/
public class BigNumberCalculateUtil {
public static BigDecimal add(BigDecimal b1, BigDecimal b2) {
return b1.add(b2);
}
public static BigDecimal substract(BigDecimal b1, BigDecimal b2) {
return b1.subtract(b2);
}
public static BigDecimal multiply(BigDecimal b1, BigDecimal b2,int scale) {
MathContext mc = new MathContext(scale);
return b1.multiply(b2,mc);
}
public static BigDecimal divide(BigDecimal b1, BigDecimal b2,int scale) {
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_EVEN);
}
/**
* b1^b2 b1的b2次幂
*
* @param b1
* @param b2
* @return
*/
public static BigDecimal pow(BigDecimal b1, int b2,int scale) {
MathContext mc = new MathContext(scale);
return b1.pow(b2,mc);
}
/**
* 取余
*
* @param b1
* @param b2
* @return
*/
public static BigDecimal remainder(BigDecimal b1, BigDecimal b2) {
return b1.remainder(b2);
}
}
测试代码:
public static void main(String[] args) {
BigDecimal b1 = new BigDecimal(0.027700/360+1);
BigDecimal b2 = new BigDecimal(0.037890/12+1);
BigDecimal b3 = new BigDecimal(1.047700);
System.out.println(b1+"\r\n"+b2);
BigDecimal pow = BigNumberCalaulateUtil.pow(b1, 360,30);
BigDecimal pow2 = BigNumberCalaulateUtil.pow(b2, 12,30);
System.out.println(pow+"\r\n"+pow2);
}
测试结果分析:
1.0000769444444443934116861782968044281005859375
1.003157499999999924256144367973320186138153076171875
1.02808611643348821402646230077
1.03855498218942805351363137489
余额宝收益利率:2.7700%。初始本金为1,最后结果每天利率
1.0000769444444443934116861782968044281005859375%
复利360天,最终利率(保留30位)1.02808611643348821402646230077%
建信养老飞月宝利率:3.7890%,初始本金为1,最后计算每月利率:
1.003157499999999924256144367973320186138153076171875
复利12个月(30*12=360):1.03855498218942805351363137489%
甭想了,最后肯定是
1.02808611643348821402646230077 < 1.03855498218942805351363137489 < 1.047700
年利率(保留5位)为 2.80% < 3.86% < 4.77% 但是比直接显示的多了点,最后怎样,见仁见智吧!