Hallo, es geht um folgende Aufgabe:
Schreiben Sie eine Applikation LogUndRunden. Die Applikation soll zwei Methoden enthalten.
Die erste Methode soll den Logarithmus einer Zahl zu einer beliebigen Basis, die der Methode als Parameter zu übergeben sind, berechnen.
Die zweite Methode soll eine beliebige Gleitkommazahl auf eine gewünschte
Anzahl Nachkommastellen runden. Die Gleitkommazahl und die Anzahl der Nachkommastellen sollen der Methode als Parameter übergeben werden.
a) Berechnen Sie log10 13, log2 10 und loge 25!
b) Runden Sie 13,0 / 3,5 = 3,7142857 … auf 2, 3 und 4
Nachkommastellen!
Wählen Sie für Ihre Variablen geeignete Datentypen.
Lesen Sie die Werte mit JOptionPane ein.
Hinweis 1: Die Berechnung des Logarithmus einer beliebigen Zahl zu einer
beliebigen Basis lässt sich wie folgt realisieren:
Logarithmus der Zahl / Logarithmus der beliebigen Basis!
Hinweis 2: Die Zahl e lautet 2,718281828…!
Hinweis 3: Nutzen Sie zum Runden die Methoden round() und pow() der Klasse Math.
Ich habe das Programm soweit fertig, jedoch bekomme ich unverständliche Ausgaben und ich weiß nicht aus welchem Grund. ich hoffe ihr könnt mir weiterhelfen.
public static void main(String[] args) {
String eingabe1, eingabe2, eingabe3, eingabe4;
double zahl, basis, ergebnis, ergebnis1, rund;
char zeichen = ‚e‘;
int nkstelle;
eingabe1 = JOptionPane.showInputDialog(„Bitte geben Sie die Zahl des Logarithmus an!“);
zahl = Double.parseDouble(eingabe1);
eingabe2 = JOptionPane.showInputDialog(„Bitte geben Sie die Basis des Logarithmus an!“);
basis = Double.parseDouble(eingabe1);
if (basis == ‚e‘) {
basis = 2.718281828;
}
eingabe3 = JOptionPane.showInputDialog(„Bitte geben Sie die zu rundende Zahl ein!“);
rund = Double.parseDouble(eingabe3);
eingabe4 = JOptionPane.showInputDialog(„Bitte geben Sie an, auf wieviel Nachkommastellen gerundet werden soll!“);
nkstelle = Integer.parseInt(eingabe4);
ergebnis = berechneLogarithmus(zahl, basis);
System.out.println("Der Logarithmus der Zahl beträgt: " + ergebnis);
ergebnis1 = runde(rund, nkstelle);
System.out.println("Die gerundete Zahl lautet: " + ergebnis1);
}
public static double berechneLogarithmus(double zahl, double basis) {
return Math.log(zahl) / Math.log(basis);
}
public static double runde(double rund, int nkstelle) {
return Math.round(rund * nkstelle);
}
}