0318-复利计算3

Posted

tags:

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

import java.text.DecimalFormat;
import java.util.Scanner;

public class Fulijisuan {
    public static void main(String[] args) {
                  // TODO Auto-generated method stub
        System.out.println("欢迎使用复利计算器!");
        /*复利计算公式:F=P*(1+r)^N
         * F:复利终值
         * P:本金
         * r:利率
         * N:利率获取时间的整数倍
         */
        Scanner scanner=new Scanner(System.in);
        System.out.print("复利计算器:计算单利和复利请按1,计算本金请按2,股票请按3,报酬率请按4,资产总值请按5,每月等额本息还款请按6:");
        int num=scanner.nextInt();
         DecimalFormat df1 = new DecimalFormat("#.00");
        if(num==1){
            double F;
            System.out.print("请输入本金P:");     
            double P = scanner.nextDouble();  
            System.out.print("请输入存入年数N:");
            int N = scanner.nextInt();           
            System.out.print("请输入利率r:");
            double r = scanner.nextDouble();
            F=P+P*N*r;
            System.out.println("单利终值为F:"+df1.format(F));
            F=0;
            System.out.print("请输入复利次数:");
            double m = scanner.nextDouble();
             F=P*(Math.pow((1+r/m), N*m));
                 System.out.println("复利终值为F:"+df1.format(F));

        }
        if(num==2){
             double H=1,P;
              System.out.print("请输入复利终值F:");     
              double F = scanner.nextDouble();  
              System.out.print("请输入存入年数N:");
              int N = scanner.nextInt();           
             System.out.print("请输入利率r:");
              double r = scanner.nextDouble();
                 P=F/Math.pow(1+r, N);
                 System.out.println("本金应为P:"+df1.format(P));
        }
        if(num==3){
            double N = 1;
            System.out.print("请输入本金P:");     
            double P= scanner.nextDouble();  
            System.out.print("请输入终值F:");
            double F= scanner.nextDouble();           
            System.out.print("请输入报酬率r:");
            double r = scanner.nextDouble();
                N=(int)((Math.log(F)/Math.log(1+r))-(Math.log(P)/Math.log(1+r)));
            System.out.println("存入时间为N:"+N);
        }
        if(num==4){
            double r= 1;
            System.out.print("请输入本金P:");     
            double P= scanner.nextDouble();  
            System.out.print("请输入终值F:");
            double F= scanner.nextDouble();           
            System.out.print("请输入存入年数N:");
            int N = scanner.nextInt();
                r=Math.pow(F/P,1d/N);
            System.out.println("报酬率应为r:"+df1.format(r));
        }
        if(num==5){
            System.out.println("年投入请按51,月投入请按52:");
            int number=scanner.nextInt();
            if(number==51){
                double F= 1;
                System.out.print("请输入年本金P:");     
                double P= scanner.nextDouble();  
                System.out.print("请输入利率r:");
                Double r= scanner.nextDouble();           
                System.out.print("请输入存入年数N:");
                int N = scanner.nextInt();
                    F=P*(Math.pow((1+r), N)-1)/r;
                System.out.println("按年投资的终值为F:"+df1.format(F));
                }
            if(number==52){
                System.out.print("请输入月本金P:");     
                double P= scanner.nextDouble();  
                System.out.print("请输入利率r:");
                Double r= scanner.nextDouble();           
                System.out.print("请输入存入年数N:");
                int N = scanner.nextInt();
                double F=P*(Math.pow(1+r/12.0, N*12)-1)/(r/12);
                System.out.println("按月投资的终值为F:"+df1.format(F));
                }
            }
            
                            
        if(num==6){
            double p1=1,F=1;
            System.out.print("请输入借款金额P:");     
            double P= scanner.nextDouble();  
            System.out.print("请输入年利率r:");
            Double r= scanner.nextDouble();           
            System.out.print("请输入还款期限N:");
            int N = scanner.nextInt();
            for(int i=1;i<=N;i++){
                F=P+(P*r)*N;
            }
            p1=F/12;
            System.out.println("每月等额本息还款为:"+df1.format(p1));
            
        }
    }
}

技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享

以上是关于0318-复利计算3的主要内容,如果未能解决你的问题,请参考以下文章

复利计算3.0代码

复利计算3.0 心得

复利单利计算的代码

复利计算之说明代码运行结果和功能点

复利单利计算的源代码

0317复利计算总结