Ich such gerade nach einer eleganten Lösung um float und/oder double Werte auf eine zu definierende Präzision zurunden. Ok, kann man selbst schreiben, doch all die einzelnen Fälle abzuhandeln ist nicht sehr schön ausserdem geh ich davon aus, dass es das bereits geben müsste, finds aber nicht
Den DecimalFormatter zu verwenden ist nicht wirklich die Lösung, da dieser fürs Formattieren in Strings oder parsen aus Strings da ist.
Also nicht zum runden.
[OT] Du kommst nicht aus der Java-Welt, oder?
Ich frag nur von wegen Code Conventions. Egal wo ich bisher hingekommen bin, alle halten sich zumindest annähernd an die Conventions von Sun.
[Klugscheißermodus an ]
Also keine Typisierung im Variablennamen
und auch keine Unterstriche
sondern sowas wie
precisionScale
roundedValue
Aber das nur nebenbei. Es erhöht halt für den „Durchschnittsjavaprogrammierer“ die Lesbarkeit, statt p_irgendwas
Nun es gibt auch Firmen welche noch andere Programmiersprachen ausser Java verwenden (z.B. C++) und diese haben dann in der Regel für beide „Welten“ dieselben Richtlinien.
Einfach die Dezimalzahl mit 10^(nachkommastelle) multiplizieren, dann Math.round(dezimalzahl) benutzen und anschliessen durch 10^(nachkommastelle) dividieren.
Fertig ist das ganze…
etwa so:
double neueZahl = Math.round(alteZahl* 10^kommastelle) / 10^kommastelle;