Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Hilfe bei Programmierung mit mathematischen Größen

Empfohlene Antworten

Veröffentlicht

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()));

}

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.

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

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.

Danke, die Formel funktioniert.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.