#1 29. Oktober 2009 Zahl auf zwei Stellen runden Hallo zusammen. Ich habe ein Problem. Ich soll ein Programm schreiben, was bestimmte Werte ausrechnet (Handelt sich um Euro Werte) und diese auf 2 Stellen runden. Aber ich darf keine externen Methoden / Funktionen benutzten. Sprich math.round() hab ich über google gefunden, darf ich aber nicht benutzten. Als Hilfestellung habe ich folgende Mathematische Formel: gerundeteZahl = 1 / 100 * [ 100 * zahl + (1/2) ] [ = untere Gauß Klammer. Nun habe ich aber nicht wirklich eine Idee wie ich dies Realisieren könnte. If usw darf ich auch nicht verwenden, nur Bedingte Ausdrücke (a<b) ? a : b ; + Multi-Zitat Zitieren
#2 29. Oktober 2009 AW: Zahl auf zwei Stellen runden ganz einfach: Code: double ss = 1.3383928923; int dd = (int) (ss*100); ss = (double) dd/100; System.out.println(ss); + Multi-Zitat Zitieren
#3 29. Oktober 2009 AW: Zahl auf zwei Stellen runden Ah wow danke, es läuft. Bin mir aber nicht sicher ob ich das alles ganz verstehe. ?( Code: double ss = 1.3383928923; Das ist klar, da erstellt er eine double Variable mit einem sehr langen kommawert. Code: int dd = (int) (ss*100); Da erstellt er eine int variable und castet int auf das ergebnis von double ss * 100. Das wären dann 133.8392... Dadurch dass es aber nach int gecastet wurde, verliert er ja die nachkommastellen. Wäre dann doch nur 133. Code: ss = (double) dd/100; hier wird der double variable 133 / 100 zugewiesen und double auf die 133 gecastet. Zwischenrechnung wäre dann 133.0 / 100 , die 100 wird dann durch implizierte typkonventierung in den breiteren datentypen konvertiert also double. Sprich es kommt 1.33 raus. Richtig? + Multi-Zitat Zitieren
#4 29. Oktober 2009 AW: Zahl auf zwei Stellen runden ja, das einzige Problem ist jetzt noch, dass es nicht rundet sondern nur abschneidet. Aber das kann man auch durch einen weiteren Trick beheben Code: double ss = 1.3383928923; int dd = (int) ((ss+0.005)*100); ss = (double) dd/100; System.out.println(ss); Jetzt rundet er so wie es sein soll... bei 0.005 auf und bei 0.004 ab... + Multi-Zitat Zitieren
#5 29. Oktober 2009 AW: Zahl auf zwei Stellen runden hm muss da nicht nur + 0.5 hin anstatt 0.005 ? weil in der formel steht ja auch nur + 1/2 + Multi-Zitat Zitieren
#6 29. Oktober 2009 AW: Zahl auf zwei Stellen runden kommt natürlich drauf an auf welche Nachkommastelle du runden willst... Mit Mathe hast es wohl nicht so?^^ Benutz einen Debugger wenn du den Code nicht blickst. Eclipse oder netbeans debugger ist sehr gut. + Multi-Zitat Zitieren
#7 29. Oktober 2009 AW: Zahl auf zwei Stellen runden Ahh, heute ist nicht mein Tag. Hab erstmal die Formel für's Runden nicht gepeilt. Aber verstehs jetzt. Hab mich gerad nur gewundert, weil ich ein falsches Ergebnis raus hatte. Musste einen Verbrauch für 1 Jahr ausrechnen. Hab aber * 6 gerechnet. Also nur ein halbes jahr *facepalm* Naja auf jedenfall Danke für die schnelle Antwort. Achso nochwas, könnte ich nicht auch zweimal casten? so würde ich mir eine variable sparen. Also anstatt so: Oder geht das nicht? + Multi-Zitat Zitieren