logo

Két tizedesjegy Java

A Java nyelvben, ha dupla adattípust használunk a változó előtt, az 15 számjegyet jelent a tizedesvessző után. De néha csak két tizedesjegyre van szükségünk a tizedesvessző után, például a rúpiák és más mértékegységek megjelenítéséhez. Tehát ebben a részben arról fogunk beszélni dupla, legfeljebb két tizedesjegyig történő megjelenítési módok megfelelő példával és Java programokkal együtt.

Két tizedesjegy Java

A Java a következő három módot kínálja a dupla 2 tizedesjegyben történő megjelenítésére:

  1. Decimális formátum használata ('0.00')
  2. A String.format() metódus használata ('%.2f')
  3. BigDecimal használata

Beszéljük meg egyenként a fenti módokat.

DecimalFormat használata

Jáva Tizedes formátum a NumberFormat osztály konkrét alosztálya, amelyet a decimális számok formázására használnak. az osztály biztosítja a setRoundingMode() módszer egy dupla szám megjelenítésére két tizedesjegyig.

Szintaxis:

 public void setRoundingMode(RoundingMode roundingMode) 

Paraméterként elfogadja a kerekítési módot, és felülírja a setRoundingMode() metódusát Számformátum osztály. Ez dob NullPointerException ha nem adunk meg semmilyen kerekítési módot. Az alábbi táblázat a különböző kerekítési módokat írja le.

Tedd be a számot FEL LE MENNYEZET PADLÓ HALF_UP HALF_DOWN FÉL_EVEN SZÜKSÉGTELEN
5.5 6 5 6 5 6 5 6 dobja az AritmetikaiKivételt
2.5 3 2 3 2 3 2 2 dobja az AritmetikaiKivételt
1.6 2 1 2 1 2 2 2 dobja az AritmetikaiKivételt
1.1 2 1 2 1 1 1 1 dobja az AritmetikaiKivételt
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 dobja az AritmetikaiKivételt
-1.6 -2 -1 -1 -2 -2 -2 -2 dobja az AritmetikaiKivételt
-2.5 -3 -2 -2 -3 -3 -2 -2 dobja az AritmetikaiKivételt
-5.5 -6 -5 -5 -6 -6 -5 -6 dobja az AritmetikaiKivételt

A DecimalFormat osztály másik módszerét használtuk a formátum() módszer. Formázza a karakterláncot, hogy létrehozzon egy karakterláncot.

webböngésző beállításai

Szintaxis:

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

A módszer három paramétert, számot, eredményt és pozíciót fogad el. De az utolsó két paraméter nem kötelező. A formázott számsort adja vissza. A módszer dob Aritmetikai kivétel ha Kerekítési mód be van állítva SZÜKSÉGTELEN.

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

Kimenet:

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

A String.format() metódus használata

A Java a format() metódust is biztosítja a szám formázásához. A String osztályba tartozik. A módszer használatával tetszőleges szám és karakterlánc formázható ennek megfelelően.

A szám két tizedesjegyig történő megváltoztatásához használjuk %.2f a szám formázásához. Vegye figyelembe, hogy a String.format() metódusban nem tudjuk kerekíteni a számot, mindig felfelé kerekítjük.

Szintaxis:

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

A módszer a következő két paramétert fogadja el:

formátum: Ez egy formázott karakterlánc, amelyet szeretnénk.

args: Ezek azok az argumentumok, amelyekre a formátum-leíró formátum-leíró hivatkozik.

A formázott karakterláncot adja vissza. Ez dob IllegalFormatException ha a formátum karakterlánc illegális szintaxist tartalmaz. Az is dob NullPointerException ha a formátumot nullként adjuk meg.

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

Kimenet:

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

BigDecimal használata

A Java BigDecimal Class-t is használhatjuk két tizedesjegyig terjedő szám megjelenítésére. hozzátartozik java.math.BigDecimal csomag. Kibővíti a Number osztályt és megvalósítja a Hasonló felület.

Az osztály biztosítja a setScale() metódust. A szintaxis a következő:

Szintaxis:

 setScale(int newScale, RoundingMode roundingMode) 

A módszer két paramétert fogad el:

új skála: A visszaadandó BigDecimal érték skálája.

hosszú a húrhoz

kerekítési mód: Az alkalmazni kívánt kerekítési mód.

A BigDecimal értékét adja vissza, amelynek skálája a megadott érték, és amelynek skálázatlan értékét úgy határozzák meg, hogy a BigDecimal skálázatlan értékét megszorozzák vagy elosztják tíz megfelelő hatványával, hogy fenntartsák a teljes értékét.

A módszer megdobja a Aritmetikai kivétel ha Kerekítési mód be van állítva SZÜKSÉGTELEN . A RoundingMode egy felsorolás, amely a fent tárgyalt RoundingMode-t biztosítja.

Egy másik módszer, amelyet ebben a programban használtunk, az BigDecimal.doubleValue(). A BigDecimal-t a kettős szám. Lássunk egy példát.

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

Kimenet:

 Double Number: 12.4565652239 Up to two decimal places: 12.46