|
|
| (24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| =String#format()=
| | #WEITERLEITUNG [[Gleitkommazahlen mit Java runden]] |
| In Programmen müssen Ergebnisse von Berechnungen oft für eine Ausgabe passend formatiert werden. Dazu gehört auch das Runden, bspw. von Euro-Beträgen.
| |
|
| |
|
| <syntaxhighlight lang="java">
| | [[Kategorie:Java]] |
| import java.util.Locale;
| |
| | |
| public class Formatter {
| |
| public static void main(String[] args) {
| |
| double number = 1234.565;
| |
| System.out.println(number+" gerundet: "+String.format("%1.2f", number));
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
| Möchte man bspw. das englische oder französische Zahlenformat ausgeben, muss noch ein passendes {{JAPI|Locale}} als erster Parameter der format()-[[Methode]] übergeben werden.<br>
| |
| Ansonsten wird das von der [[JRE]] erkannte Locale des [[Betriebssystem|Betriebssystems]] verwendet.
| |
| | |
| =NumberFormat=
| |
| Auch relativ einfach ist das Runden von Fließkommazahlen mit [[NumberFormat]].
| |
| | |
| <syntaxhighlight lang="java">
| |
| import java.text.NumberFormat;
| |
| | |
| public class Formatter {
| |
| public static void main(String[] args) {
| |
| double number = 1234.565;
| |
| NumberFormat formatter = NumberFormat.getInstance();
| |
| formatter.setMaximumFractionDigits(2);
| |
| System.out.println(number+" gerundet: "+formatter.format(number));
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| 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.
| |
| Möchte man bspw. das englische oder französische Zahlenformat ausgeben, muss noch ein passendes {{JAPI|Locale}} als Parameter der <code>getInstance()</code>-[[Methode]] übergeben werden.<br>
| |
| Ansonsten wird das von der [[JRE]] erkannte Locale des [[Betriebssystem|Betriebssystems]] verwendet.
| |
| | |
| | |
| =DecimalFormat=
| |
| Noch eine einfache Variante für das Runden von Fließkommazahlen mit Java - mit [[DecimalFormat]].
| |
| | |
| {{JAPI|DecimalFormat}} ist eine Subklasse von NumberFormat für die Formatierung von Dezimalzahlen. Als Unterklasse von NumberFormat stehen auch hier Formatierungen von Dezimalzahlen in Abhängigkeit des Gebietsschemas zur Verfügung.
| |
| | |
| <syntaxhighlight lang="java">
| |
| import java.text.DecimalFormat;
| |
| | |
| public class Formatter {
| |
| public static void main(String[] args) {
| |
| double number = 1234.565;
| |
| DecimalFormat formatter = new DecimalFormat("#.##");
| |
| System.out.println(number+" gerundet: "+formatter.format(number));
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| DecimalFormat unterstützt verschiedene lokalisierbare Zahlen-Typen, so auch Ganzzahlen (123), Festkommazahlen (123,4), wissenschaftliche Notation (1,23E4), Prozentangaben (12%) und Währungsbeträge (123 $).
| |
| | |
| =Siehe auch=
| |
| *{{JAPI|NumberFormat}}
| |
| *{{JAPI|DecimalFormat}}
| |
| *[[String]]
| |
| *{{JAPI|String}}
| |
| | |
| [[Kategorie:Java-Codeschnipsel]] | |