对于参数类型Double,int,运算符^未定义

时间:2014-06-22 12:22:40

标签: java

这是我的代码

public class InterestCalculatorDemo {

    public static void main(String[] args) {
        Integer n=20;
        Integer p=50000;
        Double r=0.5;
        //Formula A= p(1+r)^n
        for (int i = 0; i < n; i++) {
            Double x=p*(1+r);
            Double value=x^i;
            System.out.println(value);
        }
    }
}

当我运行它时会发出此错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The operator ^ is undefined for the argument type(s) Double, int

    at com.priyan.exam2010.InterestCalculatorDemo.main(InterestCalculatorDemo.java:12)

请帮我解决这个问题

感谢

3 个答案:

答案 0 :(得分:2)

^不是幂运算符,而是按位异或或(xor),仅为整数类型定义。

您应该使用Math.pow代替:

double value = Math.pow(x, i);

答案 1 :(得分:0)

无论如何,你使用的是错误的操作员。 Java中没有取幂运算符。 ^是一个XOR运算符。

你需要Math.pow()。

答案 2 :(得分:0)

正如它解释的那样..

 The operator ^ is undefined for the argument type(s) Double, int

在Java中,^运算符执行 XOR ,而不是幂运算符。 ^运算符只能在两个int值之间工作。

就像十亿其他答案一样,

Math.pow(x, i);

将解决您的问题。

未来 ...

只需阅读错误消息就可以省去很多麻烦。

The operator ^ is undefined

所以在这里,你知道在这种情况下^不存在。

for the argument type(s) Double, int

现在您知道在Doubleint的上下文中,^不存在。你知道^明确地做了某事。因此,您需要更改上下文