Keď v jazyku Java používame pred premennou typ údajov double, predstavuje to 15 číslic za desatinnou čiarkou. Niekedy však za desatinnou čiarkou požadujeme iba dve desatinné miesta, napríklad rupie a iné jednotky. Takže v tejto časti budeme diskutovať o spôsoby zobrazenia dvojnásobku až dvoch desatinných miest spolu s riadnym príkladom a programami Java.
Java poskytuje nasledujúce tri spôsoby zobrazenia dvojnásobku na 2 desatinné miesta:
- Použitie DecimalFormat ('0,00')
- Použitie metódy String.format() ('%.2f')
- Použitie BigDecimal
Poďme diskutovať o vyššie uvedených spôsoboch jeden po druhom.
Použitie DecimalFormat
Java DecimalFormat je konkrétna podtrieda triedy NumberFormat, ktorá sa používa na formátovanie desatinných čísel. trieda poskytuje setRoundingMode() metóda na zobrazenie dvojitého čísla až na dve desatinné miesta.
2 až 1 multiplexer
Syntax:
public void setRoundingMode(RoundingMode roundingMode)
Akceptuje režim zaokrúhľovania ako parameter a prepíše metódu setRoundingMode() v Formát čísla trieda. To hádže Výnimka NullPointerException ak nešpecifikujeme žiadny roundingMode. Nasledujúca tabuľka popisuje rôzne režimy zaokrúhľovania.
Zadajte číslo | HORE | DOLE | STROP | PODLAHA | HALF_UP | HALF_DOWN | HALF_EVEN | ZBYTOČNÝ |
---|---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | hodiť aritmetickú výnimku |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | hodiť aritmetickú výnimku |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | hodiť aritmetickú výnimku |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | hodiť aritmetickú výnimku |
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 | hodiť aritmetickú výnimku |
-1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | hodiť aritmetickú výnimku |
-2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | hodiť aritmetickú výnimku |
-5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | hodiť aritmetickú výnimku |
Použili sme inú metódu triedy DecimalFormat je formát() metóda. Formátuje reťazec, aby vytvoril reťazec.
Syntax:
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Metóda akceptuje tri parametre číslo, výsledok a polohu. Ale posledné dva parametre sú voliteľné. Vráti naformátovaný číselný reťazec. Metóda hádže Aritmetická výnimka ak Režim zaokrúhľovania je nastavený na ZBYTOČNÝ.
TwoDecimalPlace1.java
java previesť reťazec na celé číslo
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ýkon:
Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99
Použitie metódy String.format().
Java tiež poskytuje metódu format() na formátovanie čísla. Patrí do triedy String. Pomocou tejto metódy je možné podľa toho naformátovať ľubovoľné číslo a reťazec.
Na zmenu čísla až na dve desatinné miesta používame %.2f na formátovanie čísla. Všimnite si, že v metóde String.format() nemôžeme zaokrúhliť číslo, vždy na polovicu nahor.
Syntax:
public static String format(String format, Object... args)
Metóda akceptuje nasledujúce dva parametre:
formát: Je to naformátovaný reťazec, ktorý chceme.
dĺžka java reťazca
argumenty: Toto sú argumenty, na ktoré odkazujú špecifikátory formátu vo formátovacom reťazci.
Vráti naformátovaný reťazec. To hádže IllegalFormatException ak formátovací reťazec obsahuje neplatnú syntax. Tiež hádže Výnimka NullPointerException ak zadáme formát ako 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ýkon:
Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99
Použitie BigDecimal
Na zobrazenie čísla do dvoch desatinných miest môžeme použiť aj triedu Java BigDecimal Class. Patrí k java.math.BigDecimal balík. Rozširuje triedu Number a implementuje triedu Number Porovnateľné rozhranie.
Trieda poskytuje metódu setScale(). Syntax je nasledovná:
Syntax:
setScale(int newScale, RoundingMode roundingMode)
Metóda akceptuje dva parametre:
css pre tučné písmo
newScale: Mierka hodnoty BigDecimal, ktorá sa má vrátiť.
Režim zaokrúhľovania: Režim zaokrúhľovania, ktorý chceme použiť.
c ukážkové programy programovania
Vráti BigDecimal, ktorého mierka je špecifikovaná hodnota a ktorej neškálovaná hodnota je určená vynásobením alebo vydelením tejto BigDecimal hodnoty bez mierky príslušnou mocninou desiatich, aby sa zachovala jej celková hodnota.
Metóda vyhodí Aritmetická výnimka ak Režim zaokrúhľovania je nastavený na ZBYTOČNÝ . RoundingMode je enum, ktorý poskytuje RoundingMode diskutovaný vyššie.
Ďalšou metódou, ktorú sme v tomto programe použili, je BigDecimal.doubleValue(). Prevádza BigDecimal na a dvojitý číslo. Pozrime sa na prí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ýkon:
Double Number: 12.4565652239 Up to two decimal places: 12.46