2012-11-14 56 views
-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

你期待什么,你有什么? – kosa

+2

不是答案,只是遵循java命名约定。包名应以小写字母开头,类名应以大写字母开头。 – PermGenError

+0

我越来越375,但它假设为750,因为我输入500美元和1年50%的利息...... –

回答

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

+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 
+0

payment = principal * principal *(monthly_rate *(1 + monthly_rate)^ n);我得到一个错误,说二进制运算符的操作数类型错误 –

+0

请注意,java中的'^'是按位异或的。你应该使用Math.pow()。 –

+0

实际上他的拼写是好的。 http://en.wikipedia.org/wiki/Principal_sum#principal_sum –