rocke101 Geschrieben 27. Januar 2009 Geschrieben 27. Januar 2009 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())); } Zitieren
Schiller256 Geschrieben 27. Januar 2009 Geschrieben 27. Januar 2009 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. Zitieren
rocke101 Geschrieben 27. Januar 2009 Autor Geschrieben 27. Januar 2009 Ich habe die Klasse "java.math.BigDecimal" schon implementiert aber es geht halt nicht!?? Zitieren
Bubble Geschrieben 28. Januar 2009 Geschrieben 28. Januar 2009 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. Zitieren
rocke101 Geschrieben 29. Januar 2009 Autor Geschrieben 29. Januar 2009 Danke, die Formel funktioniert. Zitieren
Empfohlene Beiträge
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.