Zum Inhalt springen

Hilfe bei Programmierung mit mathematischen Größen


rocke101

Empfohlene Beiträge

Hallo,

ich habe drei Probleme bei der Programmierung meines Programmes und schon so einiges versucht sowie in Javabücher gelesen aber irgendwie will es nicht funktioniern. Es wäre echt nett wenn Ihr mir helfen könntet, dank im voraus.

1. bei der Formel kommt immer wieder der Fehler "operator*cannot be applied to double,java.math.BigDecimal", obwohl bei identischen Fenstern die Formel umgesetzt wird ohne Fehleranzeige. (siehe Quelltext1)

2. ich habe mehrfach versucht Zahlen im Wertebereich "double" auf 2Stellen nach dem Komma zu Runden ("public static double round(double a)") aber geht einfach nicht!!!

3. wie kann ich Formeln mit Logarithmusfunktionen einbinden (Quellcode)?

Bitte helft mir, bin ein absoluter Anfänger!!! :(

Quelltext1:

public double berechneKreditrate(double kreditBetrag, int anzJahre, double zinsSatz) {

//Hier wird die Formel A = Ro * ((q^n * (q - 1)) / (q^n - 1)) umgesetzt

zinsSatz = zinsSatz/100;

BigDecimal q = new BigDecimal(zinsSatz+1);

BigDecimal qMinusEins = new BigDecimal(zinsSatz);

double qhochAnzJahrMinusEins = q.pow(anzJahre).subtract(BigDecimal.ONE).doubleValue();

double qhochAnzJahr = q.pow(anzJahre).doubleValue();

return kreditBetrag * (qhochAnzJahr * qMinusEins/(qhochAnzJahrMinusEins.doubleValue()));

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du versuchst hier einen primitiven Datentypen mit einem nicht primitiven Datentypen zu multiplizieren. Deine qMinusEins Variable ist von Typ BigDecimal deine Variable qhochAnzJahre ist vom Typ double.

Dein wildes hin und her casten der Datentypen ist aber auch recht abenteuerlich.

Die Klasse Math sollte dir bei deinen Mathematischen Problemen weiter helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe die Klasse "java.math.BigDecimal" schon implementiert aber es geht halt nicht!??

Implementiert hat sie jemand anderes, Du nutzt sie nur.

Die Zeile des Quelltextes mit dem return Statement enthält zwei Fehler. Es muss dort "qMinusEins.doubleValue()" stehen, denn qMinusEins ist ein BigDecimal und muss erst in eine double Variable konvertiert werden, wenn der Multiplikations-Operator angewendet werden soll. "qhochAnzJahrMinusEins" ist hingegen bereits eine double Variable und braucht nicht mehr zu einer solchen konvertiert werden, d.h. es muss ".doubleValue()" weggelassen werden.

Mit diesen Änderungen sollte der Quelltext kompilieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...