NumberFormat: Unterschied zwischen den Versionen
K (→Bestimmtes Gebietsschema) |
K (→Runden) |
||
(8 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]]: | ||
− | < | + | <syntaxhighlight lang="java">double number = 1234.56; |
String str = NumberFormat.getInstance().format(number); | String str = NumberFormat.getInstance().format(number); | ||
− | </ | + | </syntaxhighlight> |
Die Ausgabe in Deutschland wird so aussehen: 1.234,56<br> | Die Ausgabe in Deutschland wird so aussehen: 1.234,56<br> | ||
Zeile 21: | Zeile 21: | ||
==Bestimmtes Gebietsschema== | ==Bestimmtes Gebietsschema== | ||
− | < | + | Man kann ein bestimmtes Gebietsschema festlegen. Die Ausgabe wird dann unabhängig vom lokalen Gebietsschema auf das eingestellte Gebietsschema gezwungen.<br> |
+ | Im folgenden Beispiel soll immer die Formatierung des französischen Gebietsschemata ausgegeben werden: | ||
+ | |||
+ | <syntaxhighlight lang="java">NumberFormat formatter = NumberFormat.getInstance(Locale.FRENCH); | ||
number = formatter.parse(str); | number = formatter.parse(str); | ||
− | </ | + | </syntaxhighlight> |
Die Ausgabe wird so aussehen: 1 234,56 | Die Ausgabe wird so aussehen: 1 234,56 | ||
Zeile 29: | Zeile 32: | ||
==Ausschalten der Tausender-Trennzeichen== | ==Ausschalten der Tausender-Trennzeichen== | ||
− | < | + | <syntaxhighlight lang="java">formatter.setGroupingUsed(false);</syntaxhighlight> |
==Runden== | ==Runden== | ||
− | Übrigens kann man Dezimalzahlen mit Hilfe der Methode <code>NumberFormat# | + | Ü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. |
+ | |||
+ | Weitere Informationen sind im Artikel [[Fließkommazahlen mit Java runden]] zu finden. | ||
=Siehe auch= | =Siehe auch= | ||
* {{JAPI|DecimalFormat}} | * {{JAPI|DecimalFormat}} | ||
+ | * {{JAPI|NumberFormat}} | ||
=Quellen= | =Quellen= |
Aktuelle Version vom 13. April 2018, 15:49 Uhr
Inhaltsverzeichnis
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!
- Besuche uns im Byte-Welt-Forum
- Besuche unseren Chat
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.