Hallo,
ich bin Umsteiger (von C) und versuche einen kleinen Taschenrechner zu programmieren.
Als Parameter übergebe ich z.B. 3 * 3
Er funktioniert, nur bei *-Rechnen kommt die Meldung:
Exception in thread "main" java.lang.NumberFormatException: For input string: ".project"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at uebung2.uebung2.main(uebung2.java:49)
ich bin Umsteiger (von C) und versuche einen kleinen Taschenrechner zu programmieren.
Als Parameter übergebe ich z.B. 3 * 3
Er funktioniert, nur bei *-Rechnen kommt die Meldung:
Exception in thread "main" java.lang.NumberFormatException: For input string: ".project"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
at uebung2.uebung2.main(uebung2.java:49)
Java:
package uebung2;
public class uebung2 {
public static int checkArgs(String[] parameter, int numberOfArguments)
{
// Fehlerueberpruefung
if (parameter.length > numberOfArguments){
System.err.println("Zu viele Argumente!");
return -1;
}
if (parameter.length < numberOfArguments){
System.err.println("Zu wenig Argumente!");
return -2;
}
return 0;
}
public static float add (float z1, float z2){
return z1 + z2;
}
public static float subtract (float z1, float z2){
return z1 - z2;
}
public static float multiplicate (float z1, float z2){
return z1 * z2;
}
public static float divide (float z1, float z2){
if (z2 == 0){
System.err.println("Division durch 0!");
}
return z1 / z2;
}
public static void main (String[] args){
//if (checkArgs(args, 3) == 0){
float z1 = Float.parseFloat(args[0]);
float z2 = Float.parseFloat(args[2]);
char operant = args[1].charAt(0);
float ergebnis = 0;
int fehlerOperant = 0;
switch (operant){
case '+': ergebnis = add(z1, z2); break;
case '-': ergebnis = subtract(z1, z2); break;
case '*': ergebnis = multiplicate(z1, z2); break;
case '/': ergebnis = divide(z1, z2); break;
default: fehlerOperant = 1; System.err.println("Falscher Operant!");
}
if (fehlerOperant == 0){
if (Float.isInfinite(ergebnis)){
System.err.println("Ergebnis unendlich");
}
System.out.println(z1 + "" + operant + "" + z2 + " = " + ergebnis);
}
//}
}
}
Zuletzt bearbeitet: