NumberFormat: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Runden)
K (Runden)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 12: Zeile 12:
 
Um eine Zahl für das lokale Gebietsschema zu formatieren, verwenden wir eine der [[Methode|Methoden]] der [[Entwurfsmuster_(Design_Patterns)#Factory|Factory-Klasse]]:
 
Um eine Zahl für das lokale Gebietsschema zu formatieren, verwenden wir eine der [[Methode|Methoden]] der [[Entwurfsmuster_(Design_Patterns)#Factory|Factory-Klasse]]:
  
<code=java>double number = 1234.56
+
<syntaxhighlight lang="java">double number = 1234.56;
 
String str = NumberFormat.getInstance().format(number);
 
String str = NumberFormat.getInstance().format(number);
</code=java>
+
</syntaxhighlight>
  
 
Die Ausgabe in Deutschland wird so aussehen: 1.234,56<br>
 
Die Ausgabe in Deutschland wird so aussehen: 1.234,56<br>
Zeile 24: Zeile 24:
 
Im folgenden Beispiel soll immer die Formatierung des französischen Gebietsschemata ausgegeben werden:
 
Im folgenden Beispiel soll immer die Formatierung des französischen Gebietsschemata ausgegeben werden:
  
<code=java>NumberFormat formatter = NumberFormat.getInstance(Locale.FRENCH);
+
<syntaxhighlight lang="java">NumberFormat formatter = NumberFormat.getInstance(Locale.FRENCH);
 
number = formatter.parse(str);
 
number = formatter.parse(str);
</code=java>
+
</syntaxhighlight>
  
 
Die Ausgabe wird so aussehen: 1 234,56
 
Die Ausgabe wird so aussehen: 1 234,56
Zeile 32: Zeile 32:
 
==Ausschalten der Tausender-Trennzeichen==
 
==Ausschalten der Tausender-Trennzeichen==
  
<code=java>formatter.setGroupingUsed(false);</code=java>
+
<syntaxhighlight lang="java">formatter.setGroupingUsed(false);</syntaxhighlight>
  
 
==Runden==
 
==Runden==
Zeile 38: Zeile 38:
 
Übrigens kann man Dezimalzahlen mit Hilfe der Methode <code>NumberFormat#setMaximumFractionDigits(int value)</code> auf eine festgelegte Anzahl an Nachkommastellen begrenzen. Dabei wird auch eine Rundung der Zahl vorgenommen.
 
Übrigens kann man Dezimalzahlen mit Hilfe der Methode <code>NumberFormat#setMaximumFractionDigits(int value)</code> auf eine festgelegte Anzahl an Nachkommastellen begrenzen. Dabei wird auch eine Rundung der Zahl vorgenommen.
  
<code=java>
+
Weitere Informationen sind im Artikel [[Fließkommazahlen mit Java runden]] zu finden.
double number = 1234.565;
 
formatter.setMaximumFractionDigits(2)
 
String str = NumberFormat.getInstance().format(number);
 
</code=java>
 
 
 
Die Ausgabe wird so aussehen: 1.234,57
 
  
 
=Siehe auch=
 
=Siehe auch=
  
 
* {{JAPI|DecimalFormat}}
 
* {{JAPI|DecimalFormat}}
 +
* {{JAPI|NumberFormat}}
  
 
=Quellen=
 
=Quellen=

Aktuelle Version vom 13. April 2018, 15:49 Uhr


Einleitung

Die Klasse NumberFormat aus dem Paket java.text ist die Basisklasse für alle Zahlenformate. Mit ihrer Hilfe können ganz bestimmte Formatierungen von Zahlen erzeugt werden, die auch automatisch die Standardformatierung des lokalen Gebietes annehmen können. Der geschriebene Code bleibt völlig unabhängig von den Gebietsschema-Konventionen für Dezimalstellen, Tausender-Trennzeichen oder sogar den Dezimalstellen (Nachkommastellen).

Beispiele

Lokales Gebietsschema

Um eine Zahl für das lokale Gebietsschema zu formatieren, verwenden wir eine der Methoden der Factory-Klasse:

double number = 1234.56;
String str = NumberFormat.getInstance().format(number);

Die Ausgabe in Deutschland wird so aussehen: 1.234,56
In den USA so: 1,234.56

Bestimmtes Gebietsschema

Man kann ein bestimmtes Gebietsschema festlegen. Die Ausgabe wird dann unabhängig vom lokalen Gebietsschema auf das eingestellte Gebietsschema gezwungen.
Im folgenden Beispiel soll immer die Formatierung des französischen Gebietsschemata ausgegeben werden:

NumberFormat formatter = NumberFormat.getInstance(Locale.FRENCH);
number = formatter.parse(str);

Die Ausgabe wird so aussehen: 1 234,56

Ausschalten der Tausender-Trennzeichen

formatter.setGroupingUsed(false);

Runden

Übrigens kann man Dezimalzahlen mit Hilfe der Methode NumberFormat#setMaximumFractionDigits(int value) auf eine festgelegte Anzahl an Nachkommastellen begrenzen. Dabei wird auch eine Rundung der Zahl vorgenommen.

Weitere Informationen sind im Artikel Fließkommazahlen mit Java runden zu finden.

Siehe auch

Quellen


Fragen

Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!

Wir helfen dir gerne!


Dir hat dieser Artikel gefallen? Oder Du hast Fehler entdeckt und möchtest zur Berichtigung beitragen? Prima! Schreibe einen Kommentar!

Du musst angemeldet sein, um einen Kommentar abzugeben.