logo

Dvě desetinná místa Java

V Javě, když používáme před proměnnou datový typ double, představuje 15 číslic za desetinnou čárkou. Někdy však požadujeme pouze dvě desetinná místa za desetinnými čárkami, jako je rupie a další jednotky. Takže v této části budeme diskutovat o způsoby, jak zobrazit dvojnásobek až dvě desetinná místa spolu s řádným příkladem a Java programy.

Dvě desetinná místa Java

Java poskytuje následující tři způsoby zobrazení dvojnásobku na 2 desetinná místa:

  1. Použití DecimalFormat ('0,00')
  2. Použití metody String.format() ('%.2f')
  3. Použití BigDecimal

Proberme výše uvedené způsoby jeden po druhém.

linuxové příkazy, které

Použití DecimalFormat

Jáva DecimalFormat je konkrétní podtřída třídy NumberFormat, která se používá k formátování desetinných čísel. třída poskytuje setRoundingMode() způsob zobrazení dvojitého čísla až na dvě desetinná místa.

Syntax:

 public void setRoundingMode(RoundingMode roundingMode) 

Přijímá režim zaokrouhlení jako parametr a přepisuje metodu setRoundingMode() metody Formát čísel třída. To hází Výjimka NullPointerException pokud neuvedeme žádný roundingMode. Následující tabulka popisuje různé režimy zaokrouhlování.

Zadejte číslo NAHORU DOLŮ STROP PODLAHA HALF_UP HALF_DOWN HALF_EVEN ZBYTEČNÉ
5.5 6 5 6 5 6 5 6 hodit ArithmeticException
2.5 3 2 3 2 3 2 2 hodit ArithmeticException
1.6 2 1 2 1 2 2 2 hodit ArithmeticException
1.1 2 1 2 1 1 1 1 hodit ArithmeticException
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 hodit ArithmeticException
-1.6 -2 -1 -1 -2 -2 -2 -2 hodit ArithmeticException
-2.5 -3 -2 -2 -3 -3 -2 -2 hodit ArithmeticException
-5.5 -6 -5 -5 -6 -6 -5 -6 hodit ArithmeticException

Použili jsme další metodu třídy DecimalFormat je formát() metoda. Formátuje řetězec, aby vytvořil řetězec.

Syntax:

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

Metoda přijímá tři parametry číslo, výsledek a poloha. Ale poslední dva parametry jsou volitelné. Vrátí formátovaný číselný řetězec. Metoda hází Aritmetická výjimka -li Režim zaokrouhlení je nastaveno na ZBYTEČNÉ.

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 } } 

Výstup:

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

Použití metody String.format().

Java také poskytuje metodu format() pro formátování čísla. Patří do třídy String. Pomocí této metody lze odpovídajícím způsobem naformátovat libovolné číslo a řetězec.

prvočíslo v Javě

Aby bylo možné změnit číslo až na dvě desetinná místa, používáme %.2f pro formátování čísla. Všimněte si, že v metodě String.format() nemůžeme zaokrouhlit číslo, vždy na polovinu nahoru.

Syntax:

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

Metoda přijímá následující dva parametry:

formát: Je to formátovaný řetězec, který chceme.

argumenty: Toto jsou argumenty, na které odkazují specifikátory formátu ve formátovacím řetězci.

Vrátí naformátovaný řetězec. To hází IllegalFormatException pokud formátovací řetězec obsahuje neplatnou syntaxi. To také hází Výjimka NullPointerException pokud zadáme formát jako null.

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); } } 

Výstup:

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

Použití BigDecimal

Můžeme také použít Java BigDecimal Class pro zobrazení čísla až na dvě desetinná místa. Patří k java.math.BigDecimal balík. Rozšiřuje třídu Number a implementuje Srovnatelný rozhraní.

Třída poskytuje metodu setScale(). Syntaxe je následující:

Syntax:

pole řetězců c programování
 setScale(int newScale, RoundingMode roundingMode) 

Metoda přijímá dva parametry:

newScale: Měřítko hodnoty BigDecimal, která má být vrácena.

Režim zaokrouhlení: Režim zaokrouhlení, který chceme použít.

Vrátí BigDecimal, jehož měřítko je zadaná hodnota a jehož neškálovaná hodnota je určena vynásobením nebo dělením této neškálované hodnoty BigDecimal příslušnou mocninou deseti, aby byla zachována její celková hodnota.

Metoda vyvolá Aritmetická výjimka -li Režim zaokrouhlení je nastaveno na ZBYTEČNÉ . RoundingMode je výčet, který poskytuje RoundingMode diskutovaný výše.

Další metodou, kterou jsme v tomto programu použili, je BigDecimal.doubleValue(). Převádí BigDecimal na a dvojnásobek číslo. Podívejme se na příklad.

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); } } 

Výstup:

 Double Number: 12.4565652239 Up to two decimal places: 12.46