Veröffentlicht 23. Juli 200223 j 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
23. Juli 200223 j 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
23. Juli 200223 j stimmt, hab ich übersehen. Wenn man nicht runden will sondern nur abschneiden, dann ist es floor. Sorry! k.o.b
10. November 200321 j 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
10. November 200321 j 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
10. November 200321 j [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)[...]
10. November 200321 j 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
28. Juni 200916 j 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
28. Juni 200916 j 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.
29. Juni 200916 j 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.
6. Juli 200916 j 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 ^^
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.