logo

Kako u Javi zaokružiti dvostruko i float do dva decimalna mjesta?

U Javi, kada koristimo dvostruki tip podataka prije varijable, on predstavlja 15 znamenki nakon decimalne točke. Ali ponekad zahtijevamo samo dva decimalna mjesta nakon decimalnih točaka kao što su rupije i druge jedinice. Dakle, u ovom odjeljku ćemo raspravljati o načini zaokruživanja dvostruko i float do dvije decimale uz odgovarajući primjer i Java programe.

.04 kao razlomak
Kako u Javi zaokružiti dvostruko i float na dva decimalna mjesta

Java nudi sljedeća tri načina za prikaz dvostrukog broja na 2 decimalna mjesta:

  1. Korištenje DecimalFormat ('0,00')
  2. Korištenje metode String.format() ('%.2f')
  3. Korištenje BigDecimala

Raspravljajmo o gore navedenim načinima jedan po jedan.

Korištenje DecimalFormat

Java DecimalFormat je konkretna podklasa klase NumberFormat koja se koristi za formatiranje decimalnih brojeva. klasa pruža setRoundingMode() metoda za prikaz dvostrukog broja do dva decimalna mjesta.

Sintaksa:

 public void setRoundingMode(RoundingMode roundingMode) 

Prihvaća način zaokruživanja kao parametar i nadjačava metodu setRoundingMode() od NumberFormat razreda. Baca se NullPointerException ako ne navedemo nikakav način zaokruživanja. Sljedeća tablica opisuje različite načine zaokruživanja.

Stavi broj GORE DOLJE STROP KAT HALF_UP POLA_DOLJE POLA_PARNO NEPOTREBNO
5.5 6 5 6 5 6 5 6 izbaciti ArithmeticException
2.5 3 2 3 2 3 2 2 izbaciti ArithmeticException
1.6 2 1 2 1 2 2 2 izbaciti ArithmeticException
1.1 2 1 2 1 1 1 1 izbaciti 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 izbaciti ArithmeticException
-1.6 -2 -1 -1 -2 -2 -2 -2 izbaciti ArithmeticException
-2.5 -3 -2 -2 -3 -3 -2 -2 izbaciti ArithmeticException
-5.5 -6 -5 -5 -6 -6 -5 -6 izbaciti ArithmeticException

Koristili smo drugu metodu klase DecimalFormat format() metoda. Formatira niz da proizvede niz.

Sintaksa:

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

Metoda prihvaća tri parametra broj, rezultat i položaj. Ali zadnja dva parametra nisu obavezna. Vraća formatirani niz brojeva. Metoda baca ArithmeticException ako Način zaokruživanja postavljeno je na NEPOTREBNO.

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

Izlaz:

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

Korištenje metode String.format().

Java također nudi metodu format() za formatiranje broja. Pripada klasi String. Korištenjem metode moguće je oblikovati bilo koji broj i niz u skladu s tim.

Kako bismo promijenili broj do dvije decimale, koristimo %.2f za formatiranje broja. Imajte na umu da ne možemo zaokružiti broj u metodi String.format(), uvijek zaokružujući na pola.

naredba bash if

Sintaksa:

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

Metoda prihvaća sljedeća dva parametra:

format: To je formatirani niz koji želimo.

args: Ovo su argumenti na koje se referiraju specifikatori formata u nizu formata.

Vraća formatirani niz. Baca se IllegalFormatException ako formatni niz sadrži nedopuštenu sintaksu. Također baca NullPointerException ako specificiramo format kao null.

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

Izlaz:

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

Korištenje BigDecimala

Također možemo koristiti Java BigDecimal Class za prikaz broja do dva decimalna mjesta. Pripada java.math.BigDecimal paket. Proširuje klasu Number i implementira Usporedivo sučelje.

tvornički dizajn uzorak

Klasa pruža metodu setScale(). Sintaksa je sljedeća:

Sintaksa:

 setScale(int newScale, RoundingMode roundingMode) 

Metoda prihvaća dva parametra:

nova skala: Mjerilo vrijednosti BigDecimal koja se vraća.

što je internet

način zaokruživanja: Način zaokruživanja koji želimo primijeniti.

Vraća BigDecimal čija je skala navedena vrijednost i čija se neskalirana vrijednost određuje množenjem ili dijeljenjem neskalirane vrijednosti ovog BigDecimala s odgovarajućom potencijom broja deset kako bi se održala njegova ukupna vrijednost.

Metoda baca ArithmeticException ako Način zaokruživanja postavljeno je na NEPOTREBNO . RoundingMode je enum koji pruža RoundingMode o kojem je gore bilo riječi.

Druga metoda koju smo koristili u ovom programu je BigDecimal.doubleValue(). Pretvara BigDecimal u a dvostruko broj. Pogledajmo primjer.

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

Izlaz:

 Double Number: 12.4565652239 Up to two decimal places: 12.46