Hallo,
ich mach gerade zur Übung eine Aufgabe aus einem alten Skript und komme nicht weiter.
Die Methode public static BigDecimal prozent(BigDecimal betrag, BigDecimal prozentsatz)
soll den Wert (betrag/100)*prozentsatz berechnen.
Dabei soll mit kaufmännischer Rundung gerechnet werden. Die Genauigkeit (Anzahl der Dezimalstellen) soll über eine Klassenvariable gesteuert werden, die man über die Methode setDezimalstellen(…) setzen kann. Standardmäßig soll sie den Wert 5 haben.
Ich hab folgendes Template gegeben:
Da hab ich aber enorme Probleme mit dem Aufruf von BigDecimal prozent(BigDecimal betrag, BigDecimal prozentsatz), was muss ich da genau für Werte eingeben?
Nur wie setzt ich das nun um, dass meine Methoden die Signatur von oben haben? Oder noch wichtiger, was für Werte muss ich beim Methodenaufruf eingeben? Geb ich einfach die 14.99 und 50 ein wie im Test, bekomme ich die Meldung "Error: incompatible types: Double cannot be converted to java.math.BigDecimal".
Bin für jede Hilfe dankbar!
ich mach gerade zur Übung eine Aufgabe aus einem alten Skript und komme nicht weiter.
Die Methode public static BigDecimal prozent(BigDecimal betrag, BigDecimal prozentsatz)
soll den Wert (betrag/100)*prozentsatz berechnen.
Dabei soll mit kaufmännischer Rundung gerechnet werden. Die Genauigkeit (Anzahl der Dezimalstellen) soll über eine Klassenvariable gesteuert werden, die man über die Methode setDezimalstellen(…) setzen kann. Standardmäßig soll sie den Wert 5 haben.
Ich hab folgendes Template gegeben:
Java:
import java.math.BigDecimal;
public class Berechnung2 {
/**
* Diese Methode speichert die Anzahl der Nachkommastellen in einer Klassenvariable.
*/
public static void setDezimalstellen(int dezimalstellen) {
}
/**
* Diese Methode berechnet einen Prozentwert unter Berücksichtigung der aktuell gültigen Nachkommastellenzahl.
*/
public static BigDecimal prozent(BigDecimal betrag, BigDecimal prozentsatz) {
return null;
}
}
Ich hab einmal zum Test, die folgende Klasse geschrieben, die so zu funktionieren scheint:
Java:
import java.math.BigDecimal;
public class BechnungTest
{
public static BigDecimal prozent() {
BigDecimal HUNDERT = new BigDecimal(100);
BigDecimal betrag = new BigDecimal(14.99);
BigDecimal prozentsatz = new BigDecimal(50);
BigDecimal prozentwert = betrag
.multiply(prozentsatz)
.divide(HUNDERT);
BigDecimal result = betrag.subtract(prozentwert);
result = result.setScale(5, BigDecimal.ROUND_HALF_UP);
System.out.println("Betrag: " + betrag);
System.out.println("Prozentsatz: " + prozentsatz);
System.out.println("Prozentwert: " + prozentwert);
System.out.println("Ergebnis: " + result);
return result;
}
}
Bin für jede Hilfe dankbar!
Zuletzt bearbeitet von einem Moderator: