Konvertierung String -> double

Bitte aktiviere JavaScript!
Hallo, ich möchte für eine Zahl unterschiedliche Operationen einlesen lassen, und dann das Ergebnis printen.
Leider habe ich ein Formatierungsproblem.
Wie kann ich dieses am effizientesten lösen?


Quellcode:
Java:
import java.util.Scanner;
public class xxx {
public static void main(String[] args) {
  double Zahl1 = -12345;
  Scanner eins = new Scanner(System.in);
  String Bed = eins.nextLine();
  double EW = "Math."+Bed+"("+Zahl1+")";
  System.out.println(Bed+"("+Zahl1+") = " +EW); 
}
}
Beispiel Operatoren:
abs(x) => Absolutwert der Zahl x
ceil(x) => ganzzahliges Aufrunden der Zahl x
exp(x) => Exponentialfunktion ex
floor(x) => ganzzahliges Abrunden der Zahl x
log(x) => natürlicher Logarithmus von x
sqrt(x) => Wurzel von x
 
Zuletzt bearbeitet von einem Moderator:
Ich verstehe gerade dein Problem aufgrund deines Codes nicht. Wenn es dir einfach nur darum geht einen String in einen Double zu parsen, das machst du mit Double.parseDouble(string).
 
Vielleicht sucht er etwas in der Art?

Java:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.function.Function;

public class Rechner {
    static Map<String,Function<Double, Double>> funktionen = new HashMap<>();
    static {
        funktionen.put("abs", x -> Math.abs(x));
        funktionen.put("ceil", x -> Math.ceil(x));
        funktionen.put("exp", x -> Math.exp(x));
        funktionen.put("floor", x -> Math.floor(x));
        funktionen.put("log", x -> Math.log(x));
        funktionen.put("sqrt", x -> Math.sqrt(x));
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double zahl = 0.0;
        boolean done = false;
        do {
            System.out.print("Zahl [" + zahl + "]: ");
            String eingabe = scanner.nextLine();
            if (!eingabe.isEmpty()) {
                zahl = Double.parseDouble(eingabe);
            }

            System.out.print("Funktion (abs, ceil, exp, floor, log, sqrt): ");
            String funktion = scanner.nextLine();

            if (funktionen.containsKey(funktion)) {
                double ergebnis = funktionen.get(funktion).apply(zahl);
                System.out.println(funktion+"("+zahl+") = " +ergebnis); 
                zahl = ergebnis;
            } else {
                done = true;
            }
        } while (!done);

        System.out.println("Ciao");
    }
}
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben