0330复利计算4.0(改)

Posted 12许佳仪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0330复利计算4.0(改)相关的知识,希望对你有一定的参考价值。

  1 import java.util.Scanner;
  2 
  3 public class text {
  4 
  5     public static void main(String[] args) {
  6         while (true) {
  7             Scanner scanner = new Scanner(System.in);
  8             System.out.println("----------------------------");
  9             System.out.println("    1.复利计算本息                          ");
 10             System.out.println("    2.单利计算本息                          ");
 11             System.out.println("    3.复利计算本金                          ");
 12             System.out.println("    4.单利计算本金                          ");
 13             System.out.println("    5.算投资年限      ");
 14             System.out.println("    6.算投资年利率      ");
 15             System.out.println("    7.每年定投收益                       ");
 16             System.out.println("    8.每月定投收益                       ");
 17             System.out.println("    9.每月等额本息还款          ");
 18             System.out.println("    0.退出                             ");
 19             System.out.println("----------------------------");
 20             System.out.print("请选择:");
 21             int number = scanner.nextInt();
 22             switch (number) {
 23             case 1:
 24                 BenxiFuli();
 25                 break;
 26             case 2:
 27                 BenxiDanli();
 28                 break;
 29             case 3:
 30                 BenjinFuli();
 31                 break;
 32             case 4:
 33                 BenjinDanli();
 34                 break;
 35             case 5:
 36                 TouziYear();
 37                 break;
 38             case 6:
 39                 TouziRate();
 40                 break;
 41             case 7:
 42                 YearDingtoushouyi();
 43                 break;
 44             case 8:
 45                 MonthDingtoushouyi();
 46                 break;
 47             case 9:
 48                 Dengerbenxihuanknan();
 49                 break;
 50             case 0:
 51                 Exit();
 52                 break;
 53             default: {
 54                 System.out.println("输入错误!请重新输入!");
 55                 break;
 56             }
 57             }
 58         }
 59 
 60     }
 61 
 62     private static void Exit() {
 63         // TODO 自动生成的方法存根
 64         System.out.println("谢谢使用!");
 65         System.exit(0);
 66 
 67     }
 68 
 69     private static void Dengerbenxihuanknan() {
 70         // TODO 自动生成的方法存根
 71         Scanner scanner = new Scanner(System.in);
 72         System.out.print("请输入贷款本金:");
 73         double money = scanner.nextDouble();
 74         System.out.print("请输入年利率:");
 75         double rate = scanner.nextDouble();
 76         System.out.print("请输入年限:");
 77         int year = scanner.nextInt();
 78         double num = 1;
 79         for (int i = 1; i <= year * 12; i++) {
 80             num = (1 + (rate / 12)) * num;
 81 
 82         }
 83         money = money * ((rate / 12) * num) / (num - 1);
 84         System.out.println("每月等额本息还款:"
 85                 + (double) (Math.round(money * 100) / 100.0));
 86 
 87     }
 88 
 89     private static void MonthDingtoushouyi() {
 90         // TODO 自动生成的方法存根
 91         Scanner scanner = new Scanner(System.in);
 92 
 93         System.out.print("请输入每月的定投金额:");
 94         double money = scanner.nextDouble();
 95         System.out.print("请输入年利率:");
 96         double rate = scanner.nextDouble();
 97         System.out.print("请输入年限:");
 98         int year = scanner.nextInt();
 99         double num = 1;
100         for (int i = 1; i <= year * 12; i++) {
101             num = (1 + (rate / 12)) * num;
102 
103         }
104         money = money * (1 + (rate / 12)) * (-1 + num) / (rate / 12);
105         System.out.println("定投" + year + "年后的资产总值为:"
106                 + (double) (Math.round(money * 100) / 100.0));
107 
108     }
109 
110     private static void YearDingtoushouyi() {
111         // TODO 自动生成的方法存根
112         Scanner scanner = new Scanner(System.in);
113 
114         System.out.print("请输入每年的投资金额:");
115         double money = scanner.nextDouble();
116         System.out.print("请输入年利率:");
117         double rate = scanner.nextDouble();
118         System.out.print("请输入年限:");
119         int year = scanner.nextInt();
120         double num = 1;
121         for (int i = 1; i <= year; i++) {
122             num = (1 + rate) * num;
123 
124         }
125         money = money * (1 + rate) * (-1 + num) / rate;
126         System.out.println("定投" + year + "年后的资产总值为:"
127                 + (double) (Math.round(money * 100) / 100.0));
128 
129     }
130 
131     private static void TouziRate() {
132         // TODO 自动生成的方法存根
133         Scanner scanner = new Scanner(System.in);
134         System.out.print("请输入投资金额:");
135         double money1 = scanner.nextDouble();
136         System.out.print("请输入收获金额:");
137         double money2 = scanner.nextDouble();
138 
139         System.out.print("请输入年限:");
140         int year = scanner.nextInt();
141         double rate;
142         rate = Math.pow(money2 / money1, 1.0 / year) - 1;
143         System.out.println("所需年利率为:"
144                 + (double) (Math.round(rate * 10000) / 10000.0));
145 
146     }
147 
148     private static void TouziYear() {
149         // TODO 自动生成的方法存根
150         Scanner scanner = new Scanner(System.in);
151         System.out.print("请输入投资金额:");
152         double money1 = scanner.nextDouble();
153         System.out.print("请输入收获金额:");
154         double money2 = scanner.nextDouble();
155 
156         System.out.print("请输入年利率:");
157         double rate = scanner.nextDouble();
158         double year;
159         year = Logarithm.log(money2 / money1, 1 + rate);
160         year = Math.ceil(year);
161         System.out.println("需要存入的年限为:" + year);
162 
163     }
164 
165     private static void BenjinDanli() {
166         // TODO 自动生成的方法存根
167         Scanner scanner = new Scanner(System.in);
168         System.out.print("请输入本息:");
169         double money = scanner.nextDouble();
170         System.out.print("请输入年利率:");
171         double rate = scanner.nextDouble();
172         System.out.print("请输入年限:");
173         int year = scanner.nextInt();
174         money = money * (1 / (1 + rate * year));
175         System.out.println("单利计算需要存入的本金为:"
176                 + (double) (Math.round(money * 100) / 100.0));
177 
178     }
179 
180     private static void BenjinFuli() {
181         // TODO 自动生成的方法存根
182         Scanner scanner = new Scanner(System.in);
183         System.out.print("请输入本息:");
184         double money = scanner.nextDouble();
185         System.out.print("请输入年利率:");
186         double rate = scanner.nextDouble();
187         System.out.print("请输入年限:");
188         int year = scanner.nextInt();
189         double num = 1;
190         for (int i = 1; i <= year; i++) {
191             num = num * (1 + rate);
192         }
193         money = money * (1 / num);
194         System.out.println("复利计算需要存入的本金为:"
195                 + (double) (Math.round(money * 100) / 100.0));
196 
197     }
198 
199     private static void BenxiDanli() {
200         // TODO 自动生成的方法存根
201         Scanner scanner = new Scanner(System.in);
202         System.out.print("请输入本金:");
203         double money = scanner.nextDouble();
204         System.out.print("请输入年利率:");
205         double rate = scanner.nextDouble();
206         System.out.print("请输入年限:");
207         int year = scanner.nextInt();
208         money = money + money * rate * year;
209         System.out.println("存入" + year + "年后的单利计算本息为:"
210                 + (double) (Math.round(money * 100) / 100.0));
211 
212     }
213 
214     private static void BenxiFuli() {
215         // TODO 自动生成的方法存根
216         Scanner scanner = new Scanner(System.in);
217         System.out.print("请输入本金:");
218         double money = scanner.nextDouble();
219         System.out.print("请输入年利率:");
220         double rate = scanner.nextDouble();
221         System.out.print("请输入年限:");
222         int year = scanner.nextInt();
223         for (int i = 1; i <= year; i++) {
224             money = (1 + rate) * money;
225         }
226         System.out.println("存入" + year + "年后的复利计算本息为:"
227                 + (double) (Math.round(money * 100) / 100.0));
228 
229     }
230 }

 

以上是关于0330复利计算4.0(改)的主要内容,如果未能解决你的问题,请参考以下文章

0330复利计算(修改版)

0330 复利算法5.0(包括测试)

复利计算4.0

复利计算器4.0之再遇JUnit

0319 复利计算器4.0

复利计算4.0