-2

我没有让这个程序正确显示我的分期付款我可以请一些帮助谢谢......

package Loops;

import java.util.Scanner;

/**
 *
 * 
 */
public class program {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //variabled decleared
        double rate;
        double payment;
        //input
        System.out.print("Enter Loan Amount:");
        double principal = input.nextDouble();
        System.out.print("Enter Annual Interest:");
        double interest = input.nextDouble();
        System.out.print("Total payments per year:");//12=monthly,4= quartely,2=semi-annually and 1=annually
        double period = input.nextDouble();
        System.out.print("Enter Loan Length :");
        int length = input.nextInt();

        //proces
        double n = period * length;
        rate = interest / 100;
        double monthly_rate = rate / period;
        payment = principal * (principal * (monthly_rate * Math.pow((1 + monthly_rate), n)));

        System.out.printf("Your Monthly sum is %.2f", payment);


    }
}
4

2 回答 2

1
principal = 50000; //Redacted. Eating my words.

period = 4;
length = 4;
n = 16;

rate = 0.085;
monthly_rate = 0.085 / 16 = 0.0053125;

payment = 50000 * 50000 * 0.0053125 * (1 + 0.0053125) ^ 16;
        = 2.5x10^9 * 0.0053125 * 1.088;
        = Something remainingly massive

基本上......你的公式是错误的。你不需要除以功率商数吗?你在那个公式上的来源在哪里?

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

来源

例子:

payment = 50000*(0.085+(0.085/(1.085^16-1)))
= 5830.68
于 2012-11-14T20:34:56.400 回答
0

试试这个你的公式:

//this is how much a monthly payment is
payment = (rate + (rate / ((Math.pow(1 + rate), n) -1)) * principal

这是基于公式的第一个谷歌结果之一。如果错误,请发布结果和预期答案。

我很确定您的公式刚刚结束,正如您在上面所说的那样,等式中应该有一个分母。

You can use r* Math.pow ((1+r),n) to calculate the numerator and part of the denominator

于 2012-11-14T21:15:39.363 回答