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)
 
(25 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]].
 
 
 
{{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]]
 
[[Kategorie:Java]]
[[Kategorie:Java-Codeschnipsel]]
 

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