logo

Zwei Dezimalstellen Java

Wenn wir in Java einen Double-Datentyp vor einer Variablen verwenden, stellt dieser 15 Nachkommastellen dar. Aber manchmal benötigen wir nur zwei Dezimalstellen nach dem Komma, um beispielsweise Rupien und andere Einheiten darzustellen. In diesem Abschnitt werden wir das besprechen Möglichkeiten zur Anzeige von Doppelten bis zu zwei Dezimalstellen zusammen mit einem richtigen Beispiel und Java-Programmen.

Zwei Dezimalstellen Java

Java bietet die folgenden drei Möglichkeiten, das Doppelte mit zwei Dezimalstellen anzuzeigen:

  1. Verwendung von DecimalFormat ('0.00')
  2. Verwenden der String.format()-Methode ('%.2f')
  3. Verwenden von BigDecimal

Lassen Sie uns die oben genannten Möglichkeiten einzeln besprechen.

Verwendung von DecimalFormat

Java DecimalFormat ist eine konkrete Unterklasse der NumberFormat-Klasse, die zum Formatieren der Dezimalzahlen verwendet wird. Die Klasse bietet die setRoundingMode() Methode zur Anzeige einer doppelten Zahl mit bis zu zwei Dezimalstellen.

Syntax:

 public void setRoundingMode(RoundingMode roundingMode) 

Es akzeptiert den Rundungsmodus als Parameter und überschreibt die setRoundingMode()-Methode von Zahlenformat Klasse. Es wirft NullPointerException wenn wir keinen RoundingMode angeben. In der folgenden Tabelle werden die verschiedenen Rundungsmodi beschrieben.

Geben Sie die Nummer ein HOCH RUNTER DECKE BODEN HALF_UP HALF_DOWN HALB_GERADE UNNÖTIG
5.5 6 5 6 5 6 5 6 ArithmeticException auslösen
2.5 3 2 3 2 3 2 2 ArithmeticException auslösen
1.6 2 1 2 1 2 2 2 ArithmeticException auslösen
1.1 2 1 2 1 1 1 1 ArithmeticException auslösen
1,0 1 1 1 1 1 1 1 1
-1,0 -1 -1 -1 -1 -1 -1 -1 -1
-1.1 -2 -1 -1 -2 -1 -1 -1 ArithmeticException auslösen
-1,6 -2 -1 -1 -2 -2 -2 -2 ArithmeticException auslösen
-2,5 -3 -2 -2 -3 -3 -2 -2 ArithmeticException auslösen
-5,5 -6 -5 -5 -6 -6 -5 -6 ArithmeticException auslösen

Wir haben eine andere Methode der Klasse DecimalFormat verwendet Format() Methode. Es formatiert eine Zeichenfolge, um eine Zeichenfolge zu erzeugen.

Vergleichen Sie Zeichenfolgen Java

Syntax:

 public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) 

Die Methode akzeptiert die drei Parameter Nummer, Ergebnis und Position. Die letzten beiden Parameter sind jedoch optional. Es gibt die formatierte Zahlenzeichenfolge zurück. Die Methode wirft Arithmetische Ausnahme Wenn Rundungsmodus ist eingestellt auf UNNÖTIG.

TwoDecimalPlace1.java

 import java.math.RoundingMode; import java.text.DecimalFormat; public class TwoDecimalPlace1 { //constructor of the DecimalFormat class private static final DecimalFormat decfor = new DecimalFormat('0.00'); public static void main(String args[]) { //defining a number of type double double num = 123.9876543567; System.out.println('Double Number: ' + num); System.out.println('Double Number: ' + decfor.format(num)); //123.99 //DecimalFormat, default is RoundingMode.HALF_EVEN decfor.setRoundingMode(RoundingMode.DOWN); System.out.println('
Before Rounding: ' + decfor.format(num)); //123.98 decfor.setRoundingMode(RoundingMode.UP); System.out.println('After Rounding Up: ' + decfor.format(num)); //123.99 } } 

Ausgabe:

 Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99 

Verwenden der Methode String.format()

Java bietet auch die Methode format() zum Formatieren der Zahl. Es gehört zur String-Klasse. Mit der Methode kann man beliebige Zahlen und Zeichenfolgen entsprechend formatieren.

Um die Zahl bis auf zwei Dezimalstellen zu ändern, verwenden wir %.2f um die Zahl zu formatieren. Beachten Sie, dass wir die Zahl in der String.format()-Methode nicht runden können, sondern immer zur Hälfte aufrunden.

Syntax:

 public static String format(String format, Object... args) 

Die Methode akzeptiert die folgenden zwei Parameter:

Format: Es ist eine formatierte Zeichenfolge, die wir wollen.

Argumente: Dies sind die Argumente, auf die die Formatspezifizierer in der Formatzeichenfolge verweisen.

Es gibt die formatierte Zeichenfolge zurück. Es wirft IllegalFormatException wenn die Formatzeichenfolge eine ungültige Syntax enthält. Es wirft auch NullPointerException wenn wir das Format als null angeben.

TwoDecimalPlace2.java

 public class TwoDecimalPlace2 { public static void main(String args[]) { //defining a number of type double double num = 10.98765432167; System.out.println('Double Number: ' + num); //use either of the following two statements for two decimal places both gives the same result System.out.println('Double Number: ' + String.format('%.2f', num)); System.out.format('Double Number: %.2f', num); } } 

Ausgabe:

 Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99 

Verwenden von BigDecimal

Wir können auch die Java BigDecimal-Klasse verwenden, um eine Zahl mit bis zu zwei Dezimalstellen anzuzeigen. Es gehört java.math.BigDecimal Paket. Es erweitert die Number-Klasse und implementiert die Vergleichbar Schnittstelle.

Die Klasse stellt die Methode setScale() bereit. Die Syntax lautet wie folgt:

Syntax:

 setScale(int newScale, RoundingMode roundingMode) 

Die Methode akzeptiert zwei Parameter:

newScale: Die Skalierung des zurückzugebenden BigDecimal-Werts.

Konvertieren einer Zeichenfolge in eine Ganzzahl

Rundungsmodus: Der Rundungsmodus, den wir anwenden möchten.

Es gibt das BigDecimal zurück, dessen Skalierung der angegebene Wert ist und dessen unskalierter Wert durch Multiplikation oder Division des unskalierten Werts dieses BigDecimal mit der entsprechenden Zehnerpotenz bestimmt wird, um seinen Gesamtwert beizubehalten.

Die Methode wirft die Arithmetische Ausnahme Wenn Rundungsmodus ist eingestellt auf UNNÖTIG . Der RoundingMode ist eine Aufzählung, die den oben besprochenen RoundingMode bereitstellt.

Eine andere Methode, die wir in diesem Programm verwendet haben, ist BigDecimal.doubleValue(). Es konvertiert BigDecimal in a doppelt Nummer. Sehen wir uns ein Beispiel an.

TwoDecimalPlace3.java

 import java.math.BigDecimal; import java.math.RoundingMode; public class TwoDecimalPlace3 { public static void main(String args[]) { //defining a number of type double double num = 12.4565652239; System.out.println('Double Number: ' + num); BigDecimal bd = new BigDecimal(num).setScale(2, RoundingMode.HALF_UP); double newNum = bd.doubleValue(); System.out.println('Up to two decimal places: ' + newNum); } } 

Ausgabe:

 Double Number: 12.4565652239 Up to two decimal places: 12.46