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.
A Java a következő három módot kínálja a dupla 2 tizedesjegyben történő megjelenítésére:
- Decimális formátum használata ('0.00')
- A String.format() metódus használata ('%.2f')
- 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