Math.pow()不工作?

时间:2016-03-14 21:47:16

标签: java output

这是我制作的代码,有人可以解释为什么输出保持0.0?

(我试图创建一个将二进制转换为十进制的程序,我知道这可以通过其他方式在java中轻松完成)

    package main;

    import java.util.Scanner;

    public class Class1 {

        public static void main(String[] args)
        {
            Scanner scanner = new Scanner(System.in);
            String input = scanner.nextLine();
            int length = input.length();
            double output=0.0;
            String reverse = new StringBuffer(input).reverse().toString();

            for (int i=0; i==length; i+=1){
                switch(reverse.charAt(i)){
                case '1': output = (output + (Math.pow(2, i)));break;
                case '0': break;
                }
            }
            System.out.println(output);
        }
    }

1 个答案:

答案 0 :(得分:4)

除非length == 0,否则for循环永远不会执行。

你的意思可能是:

for (int i=0; i<length; i+=1){

此外,无需使用Math.pow(2, i) - 您可以使用1 << i并将其全部保存为整数。