În Java, când folosim un tip de date dublu înaintea unei variabile, acesta reprezintă 15 cifre după virgulă zecimală. Dar uneori avem nevoie de doar două zecimale după puncte zecimale, cum ar fi pentru a reprezenta rupii și alte unități. Deci, în această secțiune, vom discuta despre modalități de a afișa dublu până la două zecimale împreună cu un exemplu adecvat și programe Java.
shloka mehta
Java oferă următoarele trei moduri de a afișa dublu cu 2 zecimale:
- Utilizarea DecimalFormat ('0.00')
- Folosind metoda String.format() ('%.2f')
- Folosind BigDecimal
Să discutăm unul câte unul despre modalitățile de mai sus.
Folosind DecimalFormat
Java DecimalFormat este o subclasă concretă a clasei NumberFormat care este utilizată pentru a formata numerele zecimale. clasa oferă setRoundingMode() metoda de afișare a unui număr dublu cu până la două zecimale.
Sintaxă:
public void setRoundingMode(RoundingMode roundingMode)
Acceptă modul de rotunjire ca parametru și suprascrie metoda setRoundingMode() a NumberFormat clasă. Aruncă NullPointerException dacă nu specificăm niciun mod de rotunjire. Următorul tabel descrie diferitele moduri de rotunjire.
Pune numărul | SUS | JOS | TAVAN | PODEA | HALF_UP | HALF_DOWN | JUMĂTATE_PARA | INUTIL |
---|---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | arunca ArithmeticException |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | arunca ArithmeticException |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | arunca ArithmeticException |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | arunca 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 | arunca ArithmeticException |
-1,6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | arunca ArithmeticException |
-2,5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | arunca ArithmeticException |
-5,5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | arunca ArithmeticException |
Am folosit o altă metodă a clasei DecimalFormat este format() metodă. Formatează un șir pentru a produce un șir.
Sintaxă:
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Metoda acceptă trei parametri număr, rezultat și poziție. Dar ultimii doi parametri sunt opționali. Returnează șirul numeric formatat. Metoda aruncă ArithmeticException dacă Mod de rotunjire este setat sa INUTIL.
TwoDecimalPlace1.java
computerul a inventat în ce an
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 } }
Ieșire:
Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99
Folosind metoda String.format().
Java oferă, de asemenea, metoda format() pentru a formata numărul. Aparține clasei String. Prin utilizarea metodei, se poate formata orice număr și șir în consecință.
Pentru a modifica numărul cu până la două zecimale, folosim %.2f pentru a formata numărul. Rețineți că nu putem rotunji numărul în metoda String.format(), rotunjind întotdeauna la jumătate.
tutorial javafx
Sintaxă:
public static String format(String format, Object... args)
Metoda acceptă următorii doi parametri:
format: Este un șir formatat pe care îl dorim.
argumente: Acestea sunt argumentele la care se face referire de specificatorii de format din șirul de format.
Returnează șirul formatat. Aruncă IllegalFormatException dacă șirul de format conține sintaxă ilegală. De asemenea, aruncă NullPointerException dacă specificăm formatul ca nul.
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); } }
Ieșire:
Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99
Folosind BigDecimal
De asemenea, putem folosi Java BigDecimal Class pentru afișarea unui număr cu până la două zecimale. Apartine java.math.BigDecimal pachet. Extinde clasa Number și implementează Comparabil interfata.
comanda arp
Clasa oferă metoda setScale(). Sintaxa este următoarea:
Sintaxă:
setScale(int newScale, RoundingMode roundingMode)
Metoda acceptă doi parametri:
newScale: Scara valorii BigDecimal care trebuie returnată.
Mod de rotunjire: Modul de rotunjire pe care vrem să-l aplicăm.
ștergerea dintr-un arbore de căutare binar
Returnează BigDecimal-ul a cărui scară este valoarea specificată și a cărei valoare nescalată este determinată prin înmulțirea sau împărțirea valorii nescalate a acestui BigDecimal cu puterea corespunzătoare a zece pentru a-și menține valoarea totală.
Metoda aruncă ArithmeticException dacă Mod de rotunjire este setat sa INUTIL . RoundingMode este o enumerare care furnizează RoundingMode discutat mai sus.
O altă metodă pe care am folosit-o în acest program este BigDecimal.doubleValue(). Convertește BigDecimal în a dubla număr. Să vedem un exemplu.
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); } }
Ieșire:
Double Number: 12.4565652239 Up to two decimal places: 12.46