Ko v Javi uporabimo dvojni podatkovni tip pred spremenljivko, ta predstavlja 15 števk za decimalno vejico. Toda včasih zahtevamo samo dve decimalni mesti za decimalko, kot na primer za predstavljanje rupij in drugih enot. Torej, v tem razdelku bomo razpravljali o načini zaokroževanja dvojno in plavajoče na dve decimalni mesti skupaj z ustreznim primerom in programi Java.
polna oblika pvr
Java ponuja naslednje tri načine za prikaz dvojnika na 2 decimalni mesti:
- Uporaba DecimalFormat ('0,00')
- Uporaba metode String.format() ('%.2f')
- Uporaba BigDecimal
Razpravljajmo o zgornjih načinih enega za drugim.
Uporaba DecimalFormat
Java DecimalFormat je konkreten podrazred razreda NumberFormat, ki se uporablja za oblikovanje decimalnih števil. razred zagotavlja setRoundingMode() metoda za prikaz dvojnega števila do dveh decimalnih mest.
Sintaksa:
public void setRoundingMode(RoundingMode roundingMode)
Sprejema način zaokroževanja kot parameter in preglasi metodo setRoundingMode() metode NumberFormat razred. Vrže NullPointerException če ne podamo nobenega načina zaokroževanja. Naslednja tabela opisuje različne načine zaokroževanja.
Postavite številko | GOR | DOL | STROP | NADSTROPJE | HALF_UP | POL_DOL | HALF_EVEN | NEPOTREBNO |
---|---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | vrzi ArithmeticException |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | vrzi ArithmeticException |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | vrzi ArithmeticException |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | vrzi 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 | vrzi ArithmeticException |
-1,6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | vrzi ArithmeticException |
-2,5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | vrzi ArithmeticException |
-5,5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | vrzi ArithmeticException |
Uporabili smo drugo metodo razreda DecimalFormat format() metoda. Oblikuje niz, da ustvari niz.
Sintaksa:
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Metoda sprejema tri parametre število, rezultat in položaj. Toda zadnja dva parametra sta neobvezna. Vrne formatiran številski niz. Metoda meče ArithmeticException če RoundingMode je nastavljeno na NEPOTREBNO.
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 } }
Izhod:
gimp, kako preklicati izbiro
Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99
Uporaba metode String.format().
Java ponuja tudi metodo format() za oblikovanje številke. Spada v razred String. Z uporabo metode lahko oblikujemo poljubno število in ustrezno niz.
Za spremembo števila do dveh decimalnih mest uporabljamo %.2f za oblikovanje številke. Upoštevajte, da števila v metodi String.format() ne moremo zaokrožiti, vedno zaokrožimo na polovico.
Sintaksa:
public static String format(String format, Object... args)
Metoda sprejme naslednja dva parametra:
format: To je formatiran niz, ki ga želimo.
argumenti: To so argumenti, na katere se sklicujejo specifikatorji formata v nizu formata.
Vrne oblikovani niz. Vrže IllegalFormatException če formatni niz vsebuje nedovoljeno sintakso. Prav tako meče NullPointerException če določimo obliko kot ničelno.
numpy pika
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); } }
Izhod:
Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99
Uporaba BigDecimal
Uporabimo lahko tudi Java BigDecimal Class za prikaz števila do dveh decimalnih mest. Pripada java.math.BigDecimal paket. Razširja razred Number in implementira Primerljivo vmesnik.
Razred nudi metodo setScale(). Sintaksa je naslednja:
Sintaksa:
setScale(int newScale, RoundingMode roundingMode)
Metoda sprejme dva parametra:
nova lestvica: Lestvica vrednosti BigDecimal, ki bo vrnjena.
zaokroževanjeMode: Način zaokroževanja, ki ga želimo uporabiti.
pisava gimp
Vrne BigDecimal, katerega merilo je navedena vrednost in katerega nerazmerjena vrednost je določena z množenjem ali deljenjem nerazmerjene vrednosti tega BigDecimala z ustrezno potenco desetice, da se ohrani njegova skupna vrednost.
Metoda vrže ArithmeticException če RoundingMode je nastavljeno na NEPOTREBNO . RoundingMode je enum, ki zagotavlja zgoraj obravnavani RoundingMode.
Druga metoda, ki smo jo uporabili v tem programu, je BigDecimal.doubleValue(). Pretvori BigDecimal v a dvojno število. Poglejmo primer.
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); } }
Izhod:
Double Number: 12.4565652239 Up to two decimal places: 12.46