我的程序有一行,它根据使用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即可解决此问题。