Javassa, kun käytämme kaksinkertaista tietotyyppiä ennen muuttujaa, se edustaa 15 numeroa desimaalipilkun jälkeen. Mutta joskus vaadimme vain kaksi desimaaleja desimaalin jälkeen, kuten rupiaa ja muita yksiköitä. Joten tässä osiossa aiomme keskustella tapoja näyttää kaksinkertainen enintään kahden desimaalin tarkkuudella yhdessä oikean esimerkin ja Java-ohjelmien kanssa.
Java tarjoaa seuraavat kolme tapaa näyttää kaksinkertainen kahden desimaalin tarkkuudella:
- DecimalFormatin käyttäminen ('0.00')
- String.format()-menetelmän käyttäminen ('%.2f')
- BigDecimalin käyttö
Keskustellaan yllä olevista tavoista yksitellen.
DecimalFormatin käyttö
Java Desimaalimuoto on NumberFormat-luokan konkreettinen alaluokka, jota käytetään desimaalilukujen muotoiluun. luokka tarjoaa setRoundingMode() tapa näyttää kaksinkertainen luku kahden desimaalin tarkkuudella.
Syntaksi:
passaa muuten jos
public void setRoundingMode(RoundingMode roundingMode)
Se hyväksyy pyöristystilan parametrina ja ohittaa setRoundingMode()-metodin Numeromuoto luokkaa. Se heittää NullPointerException jos emme määritä pyöristystilaa. Seuraavassa taulukossa kuvataan eri pyöristystavat.
Laita numero | YLÖS | ALAS | KATTO | LATTIA | HALF_UP | HALF_DOWN | HALF_EVEN | TARPEEN |
---|---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | heittää Aritmeettinen poikkeus |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | heittää Aritmeettinen poikkeus |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | heittää Aritmeettinen poikkeus |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | heittää Aritmeettinen poikkeus |
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 | heittää Aritmeettinen poikkeus |
-1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | heittää Aritmeettinen poikkeus |
-2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | heittää Aritmeettinen poikkeus |
-5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | heittää Aritmeettinen poikkeus |
Olemme käyttäneet toista luokan DecimalFormat menetelmää muoto() menetelmä. Se muotoilee merkkijonon tuottaakseen merkkijonon.
Syntaksi:
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Menetelmä hyväksyy kolme parametria numero, tulos ja sijainti. Mutta kaksi viimeistä parametria ovat valinnaisia. Se palauttaa muotoillun numerojonon. Menetelmä heittää Aritmeettinen poikkeus jos Pyöristystila on asetettu TARPEEN.
TwoDecimalPlace1.java
onko kat timpf lakimies
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 } }
Lähtö:
Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99
String.format()-menetelmän käyttäminen
Java tarjoaa myös format()-menetelmän numeron muotoiluun. Se kuuluu String-luokkaan. Menetelmää käyttämällä voidaan muotoilla mikä tahansa numero ja merkkijono vastaavasti.
Jos haluat muuttaa lukua kahden desimaalin tarkkuudella, käytämme %.2f muotoillaksesi numeron. Huomaa, että emme voi pyöristää lukua String.format()-metodissa, vaan pyöristetään aina puoleen ylöspäin.
Syntaksi:
public static String format(String format, Object... args)
Menetelmä hyväksyy seuraavat kaksi parametria:
muoto: Se on muotoiltu merkkijono, jonka haluamme.
args: Nämä ovat argumentteja, joihin muotomäärittäjät viittaavat muotomerkkijonossa.
reagoida sisäänrakennettu tyyli
Se palauttaa muotoillun merkkijonon. Se heittää IllegalFormatException jos muotomerkkijono sisältää laittoman syntaksin. Se myös heittää NullPointerException jos määritetään muoto tyhjäksi.
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); } }
Lähtö:
Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99
BigDecimalin käyttö
Voimme myös käyttää Java BigDecimal Classia luvun näyttämiseen enintään kahden desimaalin tarkkuudella. Se kuuluu java.math.BigDecimal paketti. Se laajentaa Number-luokkaa ja toteuttaa Vertailukelpoinen käyttöliittymä.
Luokka tarjoaa setScale()-metodin. Syntaksi on seuraava:
Syntaksi:
setScale(int newScale, RoundingMode roundingMode)
Menetelmä hyväksyy kaksi parametria:
uutisasteikko: Palautettavan BigDecimal-arvon asteikko.
pyöristystila: Pyöristystila, jota haluamme käyttää.
Se palauttaa BigDecimalin, jonka asteikko on määritetty arvo ja jonka skaalaamaton arvo määritetään kertomalla tai jakamalla tämän BigDecimalin skaalaamaton arvo sopivalla kymmenellä sen kokonaisarvon säilyttämiseksi.
merkistä int javassa
Menetelmä heittää Aritmeettinen poikkeus jos Pyöristystila on asetettu TARPEEN . RoundingMode on luettelo, joka tarjoaa edellä käsitellyn RoundingModen.
Toinen menetelmä, jota olemme käyttäneet tässä ohjelmassa, on BigDecimal.doubleValue(). Se muuntaa BigDecimalin a kaksinkertainen määrä. Katsotaanpa esimerkkiä.
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); } }
Lähtö:
Double Number: 12.4565652239 Up to two decimal places: 12.46