Fließkommazahlen mit Java runden: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K (DecimalFormat)
(Weiterleitung nach Gleitkommazahlen mit Java runden erstellt)
(Markierung: Neue Weiterleitung)
 
(26 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">
 
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]].
 
 
 
<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>
 
 
 
{{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. Mehr dazu im Abschnitt zu NumberFormat.
 
 
 
=Siehe auch=
 
*{{JAPI|NumberFormat}}
 
*{{JAPI|DecimalFormat}}
 
*[[String]]
 
*{{JAPI|String}}
 
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
[[Kategorie:Java-Codeschnipsel]]
 

Aktuelle Version vom 7. November 2021, 16:44 Uhr