Runden auf x-Stellen wirklich nur so umständlich?

Status
Nicht offen für weitere Antworten.

-horn-

Bekanntes Mitglied
moien,

ich habe mal eine frage zum thema runden.
ich hab dazu dr. google vorher gefragt und eigentlich keine antwort bekommen, wie ich die gerne hätte.
denn ich würde gerne auf x-stellen hinterm komma runden lassen, aber ich finde nur selber gebaute lösungen, wie hier Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 5.4 Die Eigenschaften der Klasse Math
dazu.
ist das wirklich nicht anders lösbar oder nur gut verstecktes wissen?

ich bin ja nicht der held vom programmierfeld, aber selbst vb.net hatte das integriert, dass man beim runden gleich eine angabe machen konnte, an welcher stelle hinterm komma gerundet werden soll.

grüße, Andreas
 
B

bygones

Gast
eine methode zu haben find ich nicht wirklich umstaendlich...

ansonsten kannste auch
Java:
String.format("%.2f", 2.3456)
nehmen
 

Ark

Top Contributor
Java:
public static final double round(double value, int count){
    double shift = Math.pow(10, count);
    return Math.round(value * shift) / shift;
}
Wenn die Basis (hier: 10) auch noch flexibel sein soll, muss noch ein Parameter mehr rein. Der Code ist ungetestet! Für positive Werte in count rundet das Ding aufstellen nach dem Komma, für negative vor dem Komma. Wenn count 0 ist, wird auf den Einer gerundet.

Ark
 
B

bygones

Gast
ist die vom link verstaendlicher
Java:
  public static double roundScale2( double d ) 
  { 
    return Math.rint( d * 100 ) / 100.; 
  }
 

SchonWiederFred

Bekanntes Mitglied
Willst Du für die Ausgabe runden? Dann nimm printf bzw. format.

Willst Du die Zahl an und für sich runden? Das geht nicht, weil Zahlen wie 0,1 nicht exakt darstellbar sind.
 

-horn-

Bekanntes Mitglied
Das kann sein, aber sie kann nicht mit beliebiger Stellenanzahl umgehen, und dass sie direkt eingegeben werden können sollte, habe ich so aus dem ersten Beitrag herausgelesen (steht auch fast wörtlich so da).

Ark

moien,

es wäre schön, wenn ich es direkt eingeben könnte, also die zahl mit dezmalstellen und dann die anzahl an dezimalstellen. bei sowas einfachen wollte ich ungern ne extra methode/klasse machen, die das dann erledigt.ich hatte gehoft, dass java sowas direkt eingebaut hat. selbst vb.net (mit dem ich was für die hochschule machen musste) hat das. da war ich überrascht, als ich etwas ähnliches bei java nicht fand.

wenn sich das wirklich nicht anders umsetzen lässt werd ich das natürlich so machen, dass ich das wie bei javainsel beschrieben mache. es wäre nur schöner ohne.
und anpassen lässt sich das ja auch. ich kann ja auch zusätzlich zur dezimalzahl auch die anzahl stellen dahin übergeben und anstelle dann mit einer festen zahl hin und her zu multiplizieren, im beispiel war das ja "100" geht das ja auch mit 10^ANZAHLSTELLEN und dann ist das auch ein wenig flexibler.

grüße, Andreas
 

thE_29

Top Contributor
BigDecimal bietet hier auch eine schöne Methode!

setScale(int scale, int roundingMode)
Returns a BigDecimal whose scale is the specified value, and whose unscaled value is determined by multiplying or dividing this BigDecimal's unscaled value by the appropriate power of ten to maintain its overall value.

Wobei roundingMode =
ROUND_UP
ROUND_DOWN
ROUND_CEILING
ROUND_FLOOR
ROUND_HALF_UP
ROUND_HALF_DOWN
ROUND_HALF_EVEN
ROUND_UNNECESSARY

Was was macht findest du in der API Doc ;)
 

sliwalker

Top Contributor
Ja....

...C# kann das.
Was daran gut ist, dass die Methode dem dabei dem Standard IEEE 754 folgt.
Schlecht daran ist, dass die Methode dem Standard IEEE 754 folgt.
Verstehst?

Man kann nunmal nicht immer gebrauchen, dass eine Zahl anhand der Entscheidung bist Du gerade oder ungerade gerundet wird.
Wenn IEEE 754, dann nur und ausschließlich überall und in allem womit die gesamte Applikation zu tun hat.
Und weißt Du ob Webservice XYZ dem Standard für floating points folgt?

In Java kannst Du Dich selbst entscheiden ob Du strictfp nutzt oder nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Zahl auf 2 nachkomma stellen runden Java Basics - Anfänger-Themen 13
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
P Dezimalstellen limitieren (runden auf 2 Stellen) Java Basics - Anfänger-Themen 3
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
S Runden auf den niedrigsten Wert Java Basics - Anfänger-Themen 10
M Double Wert nach n abschneiden ohne zu runden Java Basics - Anfänger-Themen 1
Z Runden Arraylist Java Basics - Anfänger-Themen 9
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
J Hilfe beim Runden Java Basics - Anfänger-Themen 4
S Runden von Zahlen Java Basics - Anfänger-Themen 1
J Fehler beim Runden Java Basics - Anfänger-Themen 3
T ungewolltes Runden Java Basics - Anfänger-Themen 5
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
A Kaufmännisches Runden mit BigDecimal Java Basics - Anfänger-Themen 14
M Double Wert auf 2 Kommastellen runden Java Basics - Anfänger-Themen 2
K Methoden Integer runden/aufrunden Java Basics - Anfänger-Themen 2
F Zeiteinheit auf ganze Zahl runder runden Java Basics - Anfänger-Themen 4
L Nachkommastellen Runden, Problem mit Syntax " }" Java Basics - Anfänger-Themen 2
J Auf den nächsten Zehner runden? Java Basics - Anfänger-Themen 4
C Nach Berechnung runden und Wert ausgeben Java Basics - Anfänger-Themen 7
A Richtig runden Java Basics - Anfänger-Themen 9
M Double-Zahlen auf Intervalle runden Java Basics - Anfänger-Themen 3
H Runden klappt nicht Java Basics - Anfänger-Themen 10
S Zahlen runden Java Basics - Anfänger-Themen 5
E Runden Java Basics - Anfänger-Themen 2
U Erste Schritte Kommazahl runden Java Basics - Anfänger-Themen 17
K Große Gleitkommazahlen runden Java Basics - Anfänger-Themen 8
Luk10 Nachkommastellen runden Java Basics - Anfänger-Themen 2
S Runden eines doubles auf n nachkommastellen Java Basics - Anfänger-Themen 10
M Float auf bestimmte Nachkommazahl runden Java Basics - Anfänger-Themen 3
I Runden / Zweikommastellen geht nicht... Java Basics - Anfänger-Themen 3
J Konvertieren und Runden von double in int Java Basics - Anfänger-Themen 3
H Datentypen Rechnen und Runden Java Basics - Anfänger-Themen 2
O Runden - x/100 liefert long zurück Java Basics - Anfänger-Themen 7
T Runden mit Präzision vs. Runden mit Nachkommastellen Java Basics - Anfänger-Themen 4
J Runden mit printf Java Basics - Anfänger-Themen 3
F (Verständnis)Problem: Zahl auf 2 Nachkommastellen runden Java Basics - Anfänger-Themen 5
Rika Runden Java Basics - Anfänger-Themen 6
F Werte runden Java Basics - Anfänger-Themen 11
N Runden Java Basics - Anfänger-Themen 6
J Runden auf 2 Nachkommastellen ? Java Basics - Anfänger-Themen 5
D runden ohne math! (zur not auch mit) Java Basics - Anfänger-Themen 9
D Einfache Funktion zum kaufmännischen runden Java Basics - Anfänger-Themen 8
J richtig runden Java Basics - Anfänger-Themen 4
B Double je nach Nachkommastellen kfm runden Java Basics - Anfänger-Themen 7
J Runden Java Basics - Anfänger-Themen 4
G divisions ergebnis runden Java Basics - Anfänger-Themen 3
P Runden auf eine Nachkommastelle Java Basics - Anfänger-Themen 18
S double runden Java Basics - Anfänger-Themen 5
W Runden Java Basics - Anfänger-Themen 10
G Durch Liste iterieren und nachkommastellen runden Java Basics - Anfänger-Themen 9
C Ergebnisse auf 2 Kommastellen runden Java Basics - Anfänger-Themen 3
R Zahl runden Java Basics - Anfänger-Themen 18
M Runden eines Doublewerts auf 13 Zeichen Java Basics - Anfänger-Themen 10
A Runden Java Basics - Anfänger-Themen 5
G Kein Runden Java Basics - Anfänger-Themen 3
R "Kaufmännisch runden" Java Basics - Anfänger-Themen 12
P Automatisch auf die nächst höere zahl runden? Java Basics - Anfänger-Themen 7
F Long umwandeln und auf 2 Dezimalen runden? Java Basics - Anfänger-Themen 14
M runden Java Basics - Anfänger-Themen 9
D Einmal Runden ohne alles Java Basics - Anfänger-Themen 7
L Automatischen Runden oder Abschneiden? Java Basics - Anfänger-Themen 2
C Runden auf 2 Nachkommastellen klappt nicht||| WARUM Java Basics - Anfänger-Themen 13
S Double runden funktioniert nicht immer ? Java Basics - Anfänger-Themen 2
O Dezimal in Dual...Arraygröße & Runden Java Basics - Anfänger-Themen 4
A Bestimmt blöde Frage: Zahl runden Java Basics - Anfänger-Themen 10
K Fliesskommawert runden Java Basics - Anfänger-Themen 3
L Runden Java Basics - Anfänger-Themen 2
G Zahlen runden Java Basics - Anfänger-Themen 3
C double runden Java Basics - Anfänger-Themen 6
V Double runden Java Basics - Anfänger-Themen 6
D Zahlen runden Java Basics - Anfänger-Themen 10
F double wert formatieren und runden Java Basics - Anfänger-Themen 7
C Runden einer Altersangabe Java Basics - Anfänger-Themen 5
P double Zahl runden Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
J PdfTable Spalte höher stellen Java Basics - Anfänger-Themen 2
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
F Erste Schritte Binär zahle auf 8 stellen aufüllen Java Basics - Anfänger-Themen 2
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
E jProgressBar auf 0 stellen Java Basics - Anfänger-Themen 1
B Methoden JaveEditor - Wie kann ich Methodenbeschreibung zur Verfügung stellen Java Basics - Anfänger-Themen 1
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
S programm speichern und fertig stellen Java Basics - Anfänger-Themen 2
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
C Int mit vorangestellten Nullen und maximal 4 stellen erzeugen. Java Basics - Anfänger-Themen 4
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
I Texte an bestimmten Stellen ausgeben. Java Basics - Anfänger-Themen 3
M Programm fertig stellen, Jar mit Bildern Java Basics - Anfänger-Themen 14
T Sting -> Array, leere Stellen löschen Java Basics - Anfänger-Themen 6
B Datentypen Wurzel auf n stellen nach dem Komma selber zeihen -> double zu schlecht Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben