确定定期贷款支付

时间:2012-11-14 20:20:20

标签: java

我没有让这个程序正确显示我的分期付款我能得到一些帮助,谢谢......

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);


    }
}

2 个答案:

答案 0 :(得分: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) ) );

Source

示例:

payment = 50000*(0.085+(0.085/(1.085^16-1)))
= 5830.68

答案 1 :(得分: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