小数位数和固定列格式

时间:2016-10-05 06:08:51

标签: java

这是我必须回答的问题: (比较不同利率的贷款)编写一个程序,让用户输入贷款金额和贷款期限,并显示每个利率的月付款和总付款从5%到8%,增量为1 / 8。

import java.util.Scanner; // Scanner is in java.util
public class FinancialApp {
  	public static void main(String[] args) {
    	Scanner input = new Scanner(System.in); // Scanner object

    	System.out.print("Enter loan amount: "); // input value for loan
    		double loanAmount = input.nextDouble();

    	System.out.print("Enter number of years as an integer: ");
    		int years = input.nextInt();

    	System.out.println("Intrest Rate" + "\t" + "Monthly Payment" + "\t" + "Total Payment");

   		for(double i = 5.000; i <= 8.000; i += 0.125){

			double monthlyIntrest = i / 1200;
			double monthlyPay = loanAmount * monthlyIntrest / (1 - 1 / Math.pow(1 + monthlyIntrest, years * 12));
			double totalPay = monthlyPay * years * 12;

			System.out.println(i + "%" + "\t" + monthlyPay + "\t" + totalPay);

		}
	}
}
首先,我想说我在编码方面缺乏经验,而且我的教授根本没有教过我们任何东西,所以如果可以解释,我真的很感激。我正在努力学习这门课程。 好的,真正的问题: 但是,代码会运行,它会为我提供每月付款和总付款的数字,这些数字有6个以上的小数点,而我不知道如何将其设置为2位小数。此外,每月付款的数字偏向左侧(未与列标签对齐)。

1 个答案:

答案 0 :(得分:1)

首先,我请你不要使用Double来处理金钱。

您可以尝试在,之后只有2位数字System.out.printf("%.2f", yourNumber);