不兼容的类型错误二进制到十进制

时间:2014-02-04 02:17:48

标签: java

我正在编写此代码,我无法弄清楚为什么我无法摆脱不兼容的类型错误。

private String digits;

public String binaryToDecimal() {  
    int sum = 0;
    if(base==2) {  
        for(int i=0;i<digits.length();i++) {     
            if(digits.charAt(i)== '1')
                sum =+ (int)(Math.pow(2,(digits.length()-1-i)));
        }
        return  sum;
    }
    else 
        return "Not a binary number!";
}//end method 

我不知道该怎么做,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

你基本上有两个问题。

声明您的方法返回一个String:

public String binaryToDecimal()

但是你想要返回一个int:

int sum = 0;
...
return sum;

这就是不兼容类型错误的原因。如果要返回String,可以解决此问题,如下所示:

return String.valueOf(sum);

第二个问题是你的复合作业有错字:

sum =+ (int) ... ;

应该是:

sum += (int) ... ;