java - Math.pow() 不工作?

标签 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);
        }
    }

最佳答案

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

你的意思可能是这样的:

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

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

关于java - Math.pow() 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998710/

相关文章:

java - 读取和写入多个 HashMap

java - 验证货币的周末或非工作日

java - 在 Play 中调用 Controller 方法!模板

java - 'programming to interfaces' 的最佳实践是否适用于局部变量?

java - Spring JMS ActiveMQ 跟踪作业状态

java - Android应用程序和服务器之间双向通信的推荐方法

java - 尝试纠正简单的数组程序

安卓 : Force audio routing

python-2.7 - Python - 如何在一行上显示更新值而不是向下滚动屏幕

c# - 控制台两行输出