ExAzubi Geschrieben 23. Juli 2002 Geschrieben 23. Juli 2002 Hallo zusammen, für Javacracks sicherlich kein Problem, aber für mich. Wie kann ich von einem Double Wert alles hinter der 2.Stelle hinter dem Komma alles wegschmeißen??? Also 1,23265456645-->1,23. Danke Zitieren
kingofbrain Geschrieben 23. Juli 2002 Geschrieben 23. Juli 2002 Hallo!! Du kannst die Double ja mit 100 multiplizieren, dann runden und danach wieder durch 100 teilen. Das runden gibt ein Long zurück, Du musst also casten, wenn Du wieder eine Double willst. Sollte eigentlich das gewünschte Ergebnis bringen. k.o.b Zitieren
kingofbrain Geschrieben 23. Juli 2002 Geschrieben 23. Juli 2002 stimmt, hab ich übersehen. Wenn man nicht runden will sondern nur abschneiden, dann ist es floor. Sorry! k.o.b Zitieren
ExAzubi Geschrieben 23. Juli 2002 Autor Geschrieben 23. Juli 2002 Danke. Manchmal sieht man die Methoden vor lauter Klassen nicht. Zitieren
haarig Geschrieben 10. November 2003 Geschrieben 10. November 2003 hallo, zum runden habe ich auch mal eine Frage. verstehe das oben nicht so ganz. ich habe eine Zahl als double und will diese kaufmännisch runden, also 2 Stellen hinter dem komma. wie muss ich denn das, was oben geschrieben wurde anwenden als Beispiel: Die Zahl die ich runden will habe ich in der Variablen Zahl deklariert. Zahl=123.45678 jetzt möchte ich diese zahl auf zwei nachkommastellen gerundet haben. Wie lauten dazu die Befehle? vielen dank Zitieren
Jaraz Geschrieben 10. November 2003 Geschrieben 10. November 2003 Nur darstellen oder weiter rechnen? Gruß Jaraz Zitieren
haarig Geschrieben 10. November 2003 Geschrieben 10. November 2003 nur darstellen aber ich galub ich hab jetzt selbst schon was gefunden. nämlich mit Math.round() Math.rint() verstehe nur nicht ganz den Unterschied zwischen den beiden Zitieren
Peregrin Geschrieben 10. November 2003 Geschrieben 10. November 2003 [edit] ok, zu spät... [/edit] in der api stehts: rint:Returns the double value that is closest in value to the argument and is equal to a mathematical integer. If two double values that are mathematical integers are equally close, the result is the integer value that is even. [...] round:Returns the closest long to the argument. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type long. In other words, the result is equal to the value of the expression: (long)Math.floor(a + 0.5d)[...] Zitieren
Jaraz Geschrieben 10. November 2003 Geschrieben 10. November 2003 Original geschrieben von haarig nur darstellen Dafür gibt es die Klasse DecimalFormat http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html Hat auch den Vorteil das man lokalisierte Werte ausgeben kann. Beispiel: Locale.setDefault(Locale.GERMAN); DecimalFormat df = new DecimalFormat("###0.00"); double d = 123.1234; System.out.println(df.format(d)); Man beachte das Komma bei der Ausgabe, dass bei allen oben genannten, ich nenne es mal "Workarounds", als Punkt dargestellt wird. Gruß Jaraz Zitieren
alfray Geschrieben 28. Juni 2009 Geschrieben 28. Juni 2009 he, ichw eis is schon bisschen alt der thread... habe aber folgendes problem: mein pc wird immer langsam wenn ich mit großen double zahlen dividiere, zumindest glaube ich das es daran liegt. Ich frage mich nun ob es eine möglichkeit gibt bi einer rechnung dem compiler shcon vorher zu sagen das es z.B. höchstens 4 stellen hinter das komma berechnet werden soll? danke schonma Benschi Zitieren
Klotzkopp Geschrieben 28. Juni 2009 Geschrieben 28. Juni 2009 mein pc wird immer langsam wenn ich mit großen double zahlen dividiere, zumindest glaube ich das es daran liegt.Was hast du denn da für einen Rechner? Irgendetwas ohne FPU? Die Zeit, die eine Fließkommadivision benötigt, sollte von der Größe der Zahl weitestgehend unabhängig sein. Bist du sicher, dass es nur "große" Zahlen sind? Ich frage mich nun ob es eine möglichkeit gibt bi einer rechnung dem compiler shcon vorher zu sagen das es z.B. höchstens 4 stellen hinter das komma berechnet werden soll?Wenn du nur 4 Nachkommastellen brauchst, dann rechne doch mit Festkommawerten, d.h. benutz Ganzzahltypen und rechne in Zehntausendsteln. Zitieren
baba007 Geschrieben 29. Juni 2009 Geschrieben 29. Juni 2009 Bei uns benutze ich stets import java.text.NumberFormat; public class Main { public static void main(String args[]) { NumberFormat nf = NumberFormat.getInstance(); System.out.println("Default format: " + nf.format(1234567.678)); nf.setMaximumFractionDigits(2); System.out.println("Format with two decimal places: " + nf.format(1234567.678)); } } Diese Umwandlung mache ich immer in einer Methode, die mir einen Wert zurück gibt, den ich auch brauche double oder String. Es hat noch den zusätzlichen Charme, dass ich die Zahl, falls sie als String kommt, gemäß von Locale formatieren kann. Zitieren
alfray Geschrieben 6. Juli 2009 Geschrieben 6. Juli 2009 Oh,sry muss das mal aktualisieren, und entschuldigung das ich auf den alten thread noch geantwortet habe, hab gegoogeld und nicht aufs datum geachtet, meine schuld. auf jeden fall kann sowas garned an den datentypen liegen, bei double gehen gar keine so großen kommastellen, es liegt wohl einfach am Java, oder an meiner programmierung das es so langsam ist, was weis ich ^^ 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.