Fließkommazahlen mit Java runden: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 7: Zeile 7:
 
public class StringFormat {
 
public class StringFormat {
 
   public static void main(String[] args) {
 
   public static void main(String[] args) {
       Double myDouble = 123.456;
+
       double number = 1234.565;
       System.out.println(myDouble+" gerundet: "+String.format("%1.2f", myDouble));
+
       System.out.println(number+" gerundet: "+String.format("%1.2f", number));
 
   }
 
   }
 
}
 
}
Zeile 16: Zeile 16:
  
 
=NumberFormat=
 
=NumberFormat=
Auch relativ einfach ist das Runden von Fließkommazahlen mit {{JAPI|NumberFormat}}.
+
Auch relativ einfach ist das Runden von Fließkommazahlen mit [[NumberFormat]].
  
 
<code=java>
 
<code=java>
double number = 1234.565;
+
import java.text.NumberFormat;
formatter.setMaximumFractionDigits(2);
+
 
String str = NumberFormat.getInstance().format(number);
+
public class StringFormat {
 +
  public static void main(String[] args) {
 +
      double number = 1234.565;
 +
      formatter.setMaximumFractionDigits(2);
 +
      String str = NumberFormat.getInstance().format(number);
 +
      System.out.println(number+" gerundet: "+str));
 +
  }
 +
}
 
</code=java>  
 
</code=java>  
  
 
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.
 
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.
  
 
=Siehe auch=
 
=Siehe auch=
*[[NumberFormat]]
+
*{{JAPI|NumberFormat}}
*[[DecimalFormat]]
+
*{{JAPI|DecimalFormat}}
 
*[[String]]
 
*[[String]]
 
*{{JAPI|String}}
 
*{{JAPI|String}}

Version vom 8. Februar 2018, 15:30 Uhr

String#format()

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.

<code=java> import java.util.Locale;

public class StringFormat {

  public static void main(String[] args) {
     double number = 1234.565;
     System.out.println(number+" gerundet: "+String.format("%1.2f", number));
  }

} </code=java> Möchte man bspw. das englische oder französische Zahlenformat ausgeben, muss noch ein passendes Locale als erster Parameter der format()-Methode übergeben werden.
Ansonsten wird das von der JRE erkannte Locale des Betriebssystems verwendet.

NumberFormat

Auch relativ einfach ist das Runden von Fließkommazahlen mit NumberFormat.

<code=java> import java.text.NumberFormat;

public class StringFormat {

  public static void main(String[] args) {
     double number = 1234.565;
     formatter.setMaximumFractionDigits(2);
     String str = NumberFormat.getInstance().format(number);
     System.out.println(number+" gerundet: "+str));
  }

} </code=java>

Mit Hilfe der Methode NumberFormat#setMaximumFractionDigits(int value) 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 Locale als Parameter der getInstance()-Methode übergeben werden.
Ansonsten wird das von der JRE erkannte Locale des Betriebssystems verwendet.

Siehe auch