涉及负指数方程式的汽车支付应用程序

Car Payment App involving an equation with negative exponents

我必须在 java 中创建一个汽车支付应用程序,提示用户欠本金 (P)、利率 (r) 和每月支付的次数 (m) 必须计算每月汽车支付使用这个公式:

P(r/12)/(1-(1+r/12)^-m)

这是我目前所拥有的...

 import java.util.Scanner;
 import java.lang.Math; //importing Scanner, Math, and NumberFormat classes
 import java.text.NumberFormat;

 class Exercise13{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);   //creating Scanner

        double principal, rate, numberOfMonths, payment;    //declaring varibles

        System.out.print("Principal: ");
        principal=input.nextDouble();
        System.out.print("Interest Rate: ");    //requesting and storing user input
        rate=input.nextDouble();
        System.out.print("Number of monthly payments: ");
        numberOfMonths=input.nextDouble();
        input.close(); //closing Scanner

        payment=principal*(rate/12)/(1-(1+rate/12*)Math.pow(payment, -numberOfMonths)); //calculating monthly payment. Error in this line

        NumberFormat money =NumberFormat.getCurrencyInstance(); //Formatting output
        System.out.println("The monthly payment is:" (money.format(payment));



    }
 }

编译不通过,我真的很沮丧,因为我花了很长时间都弄不明白。

感谢任何帮助

我认为如果你把你的公式分成小块会很好

   double rate1 = rate / 12 / 100;    // monthly interest rate
    double numberOfMonths = 12 * Y;         // number of months

    double payment  = (Principal * rate1) / (1 - Math.pow(1+rate1, -numberOfMonths));

希望对你有所帮助

公式

你有什么,以及错误:

payment=principal*(rate/12)/(1-(1+rate/12*)Math.pow(payment, -numberOfMonths));
  • 二元运算符 * 在表达式 (1+rate/12*)
  • 中没有第二个参数
  • 未初始化的 payment 变量用作 Math.pow()
  • 的第一个参数
  • 需要的公式P(r/12)/(1-(1+r/12)^-m)上面的语句没有实现

P(r/12)/(1-(1+r/12)^-m)应该是什么:

payment = principal * rate/12 / (1 - Math.pow(1 + rate/12, -numberOfMonths));

输出

你有什么,以及错误:

System.out.println("The monthly payment is:" (money.format(payment));
  • 文字字符串和格式化付款之间缺少字符串连接运算符 +
  • 不清楚利率是被解释为百分比还是直接小数

为了清楚起见,它应该是什么:

System.out.println("Rate: " + NumberFormat.getPercentInstance().format(rate));
System.out.println("Payment: " + NumberFormat.getCurrencyInstance().format(payment));