Zum Inhalt springen

Double auf 2 Stellen hinter Komma


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

  • 1 Jahr später...
Geschrieben

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

Geschrieben

[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)[...]

Geschrieben
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

  • 5 Jahre später...
Geschrieben

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

Geschrieben
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.
Geschrieben

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.

Geschrieben

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 ^^

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...