天天看點

Compound Interest Calculator3.0

Compound Interest Calculator3.0

1.利率這麼低,複利計算收益都這麼厲害了,如果拿100萬元去買年報酬率10%的股票,若一切順利,過多長時間,100萬元就變成200萬元呢? 

2.如果我希望在十年内将100萬元變成200萬元,應該找到報酬率在多少的投資工具來幫助我達成目标?如果想在5年後本金翻倍,報酬率就應至少為多少才行呢?

3.如果每年都将積蓄的3萬元進行投資,每年都能獲得3%的回報,然後将這些本利之和連同年金再投入新一輪的投資,那麼,30年後資産總值将變為多少?如果換成每月定投3000呢?

import java.util.Scanner;


public class Calculator3 {

	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		Scanner scanner = new Scanner(System.in);
		int key=0;
		while (key == 0 || key == 1 || key == 2 || key==3 || key==4 || key==5) {
			System.out.println("歡迎使用" + "\n計算單利和複利終值,請按1" + "\n計算本金,請按2"
					+ "\n股票投資,請按3"
					+ "\n計算利率,請按4"
					+ "\n計算資産總值,請按5" 
					+ "\n請輸入:");
			int key1 = scanner.nextInt();
			if (key1 == 1) {
				Calculator3.DanliandFuli(); // 計算單利和複利
				break;
			} else if (key1 == 2) {
				Calculator3.Principal(); // 計算本金
				break;
			} else if (key1 == 3) {
				Calculator3.Stock(); // 股票投資(計算時間)
				break;
			} else if (key1 == 4) {
				Calculator3.Rate();  // 計算利率
				break;
			} else if (key1 == 5) {
				Calculator3.Assets();  // 計算資産總值
				break;
			}else {
				System.out.println("\n輸入錯誤!!!");
			}
		}
	}

	private static void DanliandFuli() {
		// TODO 自動生成的方法存根
		double N = 1, sum;
		Scanner scanner = new Scanner(System.in);
		System.out.println("請輸入本金:");
		double money = scanner.nextDouble();
		System.out.println("請輸入存錢年數:");
		int years = scanner.nextInt();
		System.out.println("請輸入年利率:");
		double rate = scanner.nextDouble();
        sum=money+money*years*rate;
        System.out.println("單利計算值為:" + sum);
        sum=0;
		for (int i = 1; i <= years; i++) {
			N = (1 + rate) * N;
		}
		sum = N * money;
		System.out.println("複利計算值為:" + sum);
	}

	private static void Principal() {
		// TODO 自動生成的方法存根
		double N = 1, money;
		Scanner scanner = new Scanner(System.in);
		System.out.println("請輸入複利終值:");
		double sum = scanner.nextDouble();
		System.out.println("請輸入存錢年數:");
		int years = scanner.nextInt();
		System.out.println("請輸入年利率:");
		double rate = scanner.nextDouble();
		for (int i = 1; i <= years; i++) {
			N = (1 + rate) * N;
		}
		money = sum / N;
		System.out.println("應投入的本金為:" + money);
	}

	private static void Stock() {
		// TODO 自動生成的方法存根
		Scanner scanner = new Scanner(System.in);
		System.out.println("請輸入本金:");
		double money = scanner.nextDouble();
		System.out.println("請輸入複利終值:");
		int sum = scanner.nextInt();
		System.out.println("請輸入年利率:");
		double rate = scanner.nextDouble();
		int years=(int) ((Math.log(sum)/Math.log(1+rate))-(Math.log(money)/Math.log(1+rate)));
		System.out.println("所需年限為:" + years);
	}

	private static void Rate() {
		// TODO 自動生成的方法存根
		double rate;
		Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入本金:");
        double money = scanner.nextDouble();
        System.out.print("請輸入最後得到資産總值:");
        double sum = scanner.nextDouble();
        System.out.print("請輸入存錢年數:");
        int years = scanner.nextInt();
        rate=sum/(money*years);
        System.out.println("利率為:" + rate);
	}

	private static void Assets() {
		// TODO 自動生成的方法存根
		double sum;
		Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入本金:");
        double money = scanner.nextDouble();
        System.out.print("請輸入利率:");
        double rate = scanner.nextDouble();
        System.out.print("請輸入存錢年數:");
        int years = scanner.nextInt();
        sum=money*rate*years;
        System.out.println("若投資本金每年固定不變,最後得到的資産總值為:" + sum);
        sum=0;
        for(int i=1;i<=years;i++){
            sum=money*rate*1;
            money=sum;                
        }
        System.out.println("若連本帶利投資,最後得到的資産總值為:" + sum);
	}
}
      

  演算結果:

Compound Interest Calculator3.0
Compound Interest Calculator3.0
Compound Interest Calculator3.0
Compound Interest Calculator3.0
Compound Interest Calculator3.0
Compound Interest Calculator3.0
Compound Interest Calculator3.0