我的程序有一行,它根据使用Math.pow方法的公式计算复利。

在程序的原始版本中,将变量loanRate声明为Integer时,该公式将完全无效,仅返回0;

我将loanRate更改为Double,如下所示,由于某种原因,该程序正在运行。

抱歉,如果这是一个非常简单的问题,我只是不知道为什么Math.pow方法不能与我的Int一起使用,以及在使用Math.pow后是否有通用的原则使我失踪了?

在此先感谢您的帮助。

// Variables & Constants
int principle, i;
double simpleInt, compoundInt, difference, loanRate;

// Prompts user to enter principle and rate
System.out.print("Enter Principle: "); // keep print line open
principle = console.nextInt();
System.out.println();

System.out.print("Enter Rate: ");
loanRate = console.nextDouble();

// Header


// Caculates and Outputs Simple, Compound and Difference for the loan
// in 5 year intervals from 5 to 30

for (i = 5; i <= 30; i = i + 5 )
{
    simpleInt = principle * loanRate/100 * i;
    compoundInt = principle * ((Math.pow((1 + loanRate/100),i))-1);
    difference = compoundInt - simpleInt;


    System.out.printf("\n %7d %7.2f %7.2f %7.2f", i, simpleInt, compoundInt, difference);
}

最佳答案

compoundInt = principle * ((Math.pow((1 + loanRate/100),i))-1);

loanRate/100这是关键,因为loadRate为loanRate/100.0即可解决此问题。

08-28 04:39