Zum Inhalt springen

Double auf 2 Stellen hinter Komma


ExAzubi

Empfohlene Beiträge

  • 1 Jahr später...

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Jahre später...

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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