2016-02-17 2 views
0

Je tente d'exécuter des configurations dans Eclipse. Quand je passe quelque chose comme '1 + 2', ou '123 - 321', ou '123/321' cela fonctionne bien. Le problème apparaît lorsque j'essaie de me multiplier. Dans ce cas, je reçoisNumberFormatException lors de la multiplication

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) 

Voici le code:

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; 
} 
} 
+2

On dirait que vous passez un argument qui contient ".project" –

+0

Je sais :) Mais je n'ai aucune idée d'où il vient. Je l'obtiens même quand je passe '1 * 1' – Kleeo

Répondre

4

Le problème est de savoir comment vous le programme d'invoquer. Si vous exécutez:

java Calculator 5 * 10 

puis dans quelques coquilles de commande, le * sera automatiquement étendu à tous les noms de fichiers dans le répertoire courant. Vous devriez être capable de résoudre ce problème en citant, par exemple. Ou demander les valeurs à partir de la calculatrice, au lieu de les prendre à partir de la ligne de commande.

+0

Merci beaucoup. Je pense que je ne le devinerais jamais moi-même :) Le problème est que j'ai besoin de prendre des paramètres depuis la ligne de commande. C'est le but d'une tâche. Et je suppose que cette exception était l'astuce d'une tâche – Kleeo