码迷,mamicode.com
首页 > 其他好文 > 详细

复利计算器(软件工程)———郭志豪

时间:2016-03-16 22:20:03      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:

计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30

客户提出:

2.如果按照单利计算,本息又是多少呢?

3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

代码如下:

 1 public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         System.out.println("欢迎使用复利计算器!");
 4         /*
 5          * 复利计算公式:
 6          * F=P*(1+i)N(次方)
 7    F:复利终值
 8    P:本金
 9    i:利率
10    N:利率获取时间的整数倍
11          */
12         Scanner input = new Scanner(System.in);
13         System.out.println("复利计算器:");
14         System.out.println("本金按1 复利(单利)按2 );
15         int num = input.nextInt();
16         DecimalFormat df1 = new DecimalFormat("#.00");
17         //求本金
18         if(num==1){
19         System.out.println("请输入复利终值:");
20         double F = input.nextDouble();
21         System.out.println("请输入年利率:");
22         double i = input.nextDouble();
23         System.out.println("请输入存入年限:");
24         int N = input.nextInt();
25         double P = F/Math.pow(1+i, N); //本金
26         System.out.println("本金:"+df1.format(P));
27         }
28         //求复利(单利)
29         if(num==2){
30         System.out.println("请输入存入本金:");
31         double P = input.nextDouble();
32         System.out.println("请输入年利率:");
33         double i = input.nextDouble();
34         System.out.println("请输入存入年限:");
35         int N = input.nextInt();
36         double D = P*(1+i*N); 
37         System.out.println("单利终值:"+df1.format(D));//单利
38 System.out.println("请输入年复利次数:"); 39 int m = input.nextInt(); 40 double F = P*(Math.pow((1+i/m), N*m)); //复利 41 System.out.println("复利终值:"+df1.format(F)); 42 }

技术分享技术分享因为单利跟复利原理相同,所以求复利时会自动求出单利

客户又想:

4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 

代码如下:

 1 package FuLi;
 2 import java.util.*;
 3 import java.math.*;
 4 import java.text.DecimalFormat;
 5 public class gzh {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         System.out.println("欢迎使用复利计算器!");
10         /*
11          * 复利计算公式:
12          * F=P*(1+i)N(次方)
13    F:复利终值
14    P:本金
15    i:利率
16    N:利率获取时间的整数倍
17          */
18         Scanner input = new Scanner(System.in);
19         System.out.println("复利计算器:");
20         System.out.println("本金按1 复利(单利)按2 年限按3");
21         int num = input.nextInt();
22         DecimalFormat df1 = new DecimalFormat("#.00");
23         //求本金
24         if(num==1){
25         System.out.println("请输入复利终值:");
26         double F = input.nextDouble();
27         System.out.println("请输入年利率:");
28         double i = input.nextDouble();
29         System.out.println("请输入存入年限:");
30         int N = input.nextInt();
31         double P = F/Math.pow(1+i, N); //本金
32         System.out.println("本金:"+df1.format(P));
33         }
34         //求复利(单利)
35         if(num==2){
36         System.out.println("请输入存入本金:");
37         double P = input.nextDouble();
38         System.out.println("请输入年利率:");
39         double i = input.nextDouble();
40         System.out.println("请输入存入年限:");
41         int N = input.nextInt();
42         double D = P*(1+i*N); //单利
43         System.out.println("单利终值:"+df1.format(D));
44         System.out.println("请输入年复利次数:");
45         int m = input.nextInt();
46         double F = P*(Math.pow((1+i/m), N*m)); //复利
47         System.out.println("复利终值:"+df1.format(F));
48         }
//求所需年限
49 if(num==3){ 50 System.out.println("请输入存入本金:"); 51 double P = input.nextDouble(); 52 System.out.println("请输入复利终值:"); 53 double F = input.nextDouble(); 54 System.out.println("请输入年利率:"); 55 double i = input.nextDouble(); 56 int N = (int) ((Math.log(F)/Math.log(1+i))-(Math.log(P)/Math.log(1+i))); 57 System.out.println("所需年限为:"+N); 58 } 59 60 } 61 62 }

技术分享

5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?

6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?

代码如下:

  1  package FuLi;
  2   import java.util.*;
  3   import java.math.*;
  4   import java.text.*;
  5  public class gzh {
  6   
  7       public static void main(String[] args) {
  8           // TODO Auto-generated method stub
  9           System.out.println("欢迎使用复利计算器!--BY 郭志豪");
 10          /*
 11           * 复利计算公式:
 12           * F=P*(1+i)N(次方)
 13                             F:复利终值
 14                               P:本金
 15                             i:利率
 16                           N:利率获取时间的整数倍
 17           */
 18          Scanner input = new Scanner(System.in);
 19          System.out.println("复利计算器:");
 20          System.out.println("本金按1 复利(单利)按2 年限按3 利率按4 年金终值按5");
 21          int num = input.nextInt();
 22          DecimalFormat df1 = new DecimalFormat("#.00");
 23          //求本金
 24          if(num==1){
 25          System.out.println("请输入复利终值:");
 26          double F = input.nextDouble();
 27          System.out.println("请输入年利率:");
 28          double i = input.nextDouble();
 29          System.out.println("请输入存入年限:");
 30          int N = input.nextInt();
 31          double P = F/Math.pow(1+i, N); //本金
 32          System.out.println("所需本金为:"+df1.format(P));
 33          }
 34          //求复利(单利)
 35          if(num==2){
 36          System.out.println("请输入存入本金:");
 37          double P = input.nextDouble();
 38          System.out.println("请输入年利率:");
 39          double i = input.nextDouble();
 40          System.out.println("请输入存入年限:");
 41          int N = input.nextInt();
 42          double D = P*(1+i*N); //单利
 43          System.out.println("单利终值:"+df1.format(D));
 44          System.out.println("请输入年复利次数:");
 45          int m = input.nextInt();
 46          double F = P*(Math.pow((1+i/m), N*m)); //复利
 47          System.out.println("复利终值为:"+df1.format(F));
 48          }
 49            //求所需年限
 50          if(num==3){
 51              System.out.println("请输入存入本金:");
 52              double P = input.nextDouble();
 53              System.out.println("请输入复利终值:");
 54              double F = input.nextDouble();
 55              System.out.println("请输入年利率:");
 56              double i = input.nextDouble();
 57              int N = (int) ((Math.log(F)/Math.log(1+i))-(Math.log(P)/Math.log(1+i)));
 58              System.out.println("所需年限为:"+N);
 59          }  
 60          if(num==4){
 61              System.out.println("请输入存入本金:");
 62              double P = input.nextDouble();
 63              System.out.println("请输入复利终值:");
 64              double F = input.nextDouble();
 65              System.out.println("请输入存入年限:");
 66              int N = input.nextInt();          
 67              double i = (Math.pow(F/P, 1.0/N))-1;         
 68              System.out.println("年利率为:"+i);
 69              System.out.println("本金n年后是否会翻n番?是按1 否按2");
 70              int up = input.nextInt();
 71              if(up==1){
 72              System.out.println("请输入几年后:");
 73              int n = input.nextInt();
 74              System.out.println("翻几番:");
 75              int f = input.nextInt();
 76              double I = 72.0/(n/f);   //72法则
 77             System.out.println(n+"年后本金翻倍的年利率至少为:"+df1.format(I));      
 78          }
 79             if(up==2){
 80                 System.out.println("欢迎再来!");
 81             }else{
 82                 System.out.println("输入错误!");
 83             }
 84      }
 85          if(num==5){
 86              System.out.println("按年投资按1 按月投资按2  ");
 87              int number = input.nextInt();
 88              if(number==1){
 89              System.out.println("要投资的本金:");
 90              double P = input.nextDouble();
 91              System.out.println("获得的年利率回报:");
 92              double i = input.nextDouble();
 93              System.out.println("投资年限(年):");
 94              double N = input.nextInt(); 
 95              
 96              double F = P*(Math.pow(1+i, N)-1)/i;
 97              System.out.println("按年投资的年金终值为:"+df1.format(F));
 98              }
 99              if(number==2){
100                  System.out.println("要投资的本金:");
101                  double P = input.nextDouble();
102                  System.out.println("获得的年利率回报:");
103                  double i = input.nextDouble();
104                  System.out.println("投资年限(年):");
105                  double N = input.nextInt(); 
106                  double F = P*(Math.pow(1+i/12.0, N*12)-1)/(i/12);
107                  System.out.println("按月投资的年金终值为:"+df1.format(F));
108              }
109          }
110       }
111  }

技术分享技术分享

技术分享

复利计算器(软件工程)———郭志豪

标签:

原文地址:http://www.cnblogs.com/gzh13692021053/p/gzh13692021053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!