Veröffentlicht 27. Januar 200916 j 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())); }
27. Januar 200916 j 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.
27. Januar 200916 j Ich habe die Klasse "java.math.BigDecimal" schon implementiert aber es geht halt nicht!??
28. Januar 200916 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.