Java 如何将双精度提升为幂

Java 如何将双精度提升为幂,java,Java,无法计算如何将公式提高到幂。我还导入了java中的java.lang.Math。我只是在“Math”上不断得到Sytax错误,删除这个令牌,并且不能在原始数据类型double errors上调用pow(double) 这是假设30年贷款的公式 年金系数=(0.003125*(1+0.003125)^360)/((1+0.003125)^360)-1) 360是30年12个月的时间来获得每月付款 import java.util.Scanner; import java.lang.Math; pu

无法计算如何将公式提高到幂。我还导入了java中的java.lang.Math。我只是在“Math”上不断得到Sytax错误,删除这个令牌,并且不能在原始数据类型double errors上调用pow(double)

这是假设30年贷款的公式

年金系数=(0.003125*(1+0.003125)^360)/((1+0.003125)^360)-1) 360是30年12个月的时间来获得每月付款

import java.util.Scanner;
import java.lang.Math;
public class HW3Method {

    public static void main(String[] args) {
        // main method for user inputs
        Scanner info = new Scanner(System.in);
        System.out.println("Enter the starting annual rate as a percent (n.nnn)");
        double startRate = info.nextDouble();
        System.out.println("Enter the ending annual rate as a percent (n.nnn)");
        double endRate  = info.nextDouble();
        System.out.println("Enter the annual intrest rate increments as a percent (n.nnn)");
        double rateIncrease = info.nextDouble();
        System.out.println("Enter the first term in years for calculating payments");
        double firstTerm = info.nextDouble();
        System.out.println("Enter the last term in years for calculating payments");
        double lastTerm = info.nextDouble();
        System.out.println("Enter the term increment in years");
        int termIncrement = info.nextInt();
        System.out.println("Enter the loan amount");
        double loanAmount = info.nextDouble();
        double mtp = firstTerm * 12;

    }

    public double calcAnnuity(double mtp ) {
        double annuityFactor = (0.003125*(1+0.003125)Math.pow(mtp));

        return annuityFactor;
    }

}
解释 您使用的方法
Math.pow
错误。它需要两个参数,基数和指数。你写道:

0.003125 * (1 + 0.003125) Math.pow(mtp)
但你需要写:

0.003125 * Math.pow(1.0 + 0.003125, mtp)

笔记 请注意,
1.0+0.003125
可以简化为
1.003125
,因此:

0.003125 * Math.pow(1.003125, mtp)
更好的方法是将这个神奇的数字作为常量存储在某个地方,然后只需更改一个变量,而不需要更改多个变量:

private static final int FACTOR = 0.003125;
然后使用该常数:

FACTOR * Math.pow(1.0 + FACTOR, mtp)

文档 从官方文件:

返回第一个参数的值,并将其提升为第二个参数的幂。特殊情况:[……]


等等,
(0.003125*(1+0.003125)Math.pow(mtp))
在IDE中没有用红色标记?参数为两倍。
double annuityFactor=(0.003125*Math.pow((1.0+0.003125),mtp))是的,但只有“(1+0.003125)Math.pow(mtp))“我不确定我是否应该在收缩器内放置其他东西以供参考calcAnnuity@RedaMeskali我真的为自己难过。。。。就是这么简单,谢谢你。你不需要从
java.lang
导入任何东西,现在我明白了。非常感谢你的反馈。我似乎不明白它需要两个论点,我会努力记住这一点,以备将来之用。欢迎。请记住,您可以随时查找文档(答案中的链接):)
public static double pow​(double a, double b)