【问题标题】:NumberFormatException while multiplying乘法时出现 NumberFormatException
【发布时间】:2016-02-17 09:29:25
【问题描述】:

我正在尝试在 Eclipse 中“运行配置”。 当我通过“1 + 2”、“123 - 321”或“123 / 321”之类的东西时,它运行良好。 当我尝试做乘法时,问题就出现了。在这种情况下,我得到

Exception in thread "main" java.lang.NumberFormatException: For input string: ".project"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Main.main(Main.java:15)

代码如下:

public class Main {

public static void main(String[] args) {
    double aNum;
    double bNum;
    char operator;
    String result = "Error";
    Calculator calc = new Calculator();

    if (args.length == 0) {
        System.out.println("No parameters were entered");
    }
    else {
        aNum = Double.parseDouble(args[0]);
        bNum = Double.parseDouble(args[2]);
        operator = args[1].charAt(0);
        result = calc.calculate(aNum, bNum, operator);

        System.out.println(result);
    }
}

}


public class Calculator {
public String calculate(double aNum, double bNum, double operator) {
    String result = "Error";
    if(operator=='+'){
        result = String.valueOf(aNum+bNum);
    }
    else if (operator=='-') {
        result = String.valueOf(aNum-bNum);
    }
    else if (operator=='*') {
        result = String.valueOf(aNum*bNum);
    }
    else if (operator=='/') {
        if (bNum==0) {
            System.out.println("Forbidden operation: div by zero!");
        }
        else {
            result = String.valueOf(aNum/bNum);
        }
    }
    else {
        System.out.println("Unhandled operator. Please use '+-*/' as operators");
        result = "Error";
    }
    return result;
}
}

【问题讨论】:

  • 看起来您正在传递一个包含“.project”的参数
  • 我知道:) 但我不知道它来自哪里。即使我通过了'1 * 1',我也明白了

标签: java parsing numberformatexception


【解决方案1】:

问题在于您如何调用程序。如果你运行:

java Calculator 5 * 10

然后在某些命令 shell 中,* 将自动扩展为当前目录中的所有文件名。您应该可以通过引用来解决此问题,例如

java Calculator 5 '*' 10

或者从计算器中询问值,而不是从命令行获取。

【讨论】:

  • 非常感谢。我想我自己永远不会猜到这一点:) 问题是我需要从命令行获取参数。这就是任务的重点。我猜这个异常是任务的把戏
猜你喜欢
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
相关资源
最近更新 更多