当变量的类型为int时,Math.pow不起作用

时间:2014-02-26 18:49:19

标签: java int double type-conversion

我的程序有一行,它根据使用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);
}

1 个答案:

答案 0 :(得分:1)

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

loanRate/100这里是关键,因为loadRate是&lt; 100比这样的划分结果为0.将此更改为loanRate/100.0,这将解决问题。