logo

Kaksi desimaalipistettä Java

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.

Kaksi desimaalipistettä Java

Java tarjoaa seuraavat kolme tapaa näyttää kaksinkertainen kahden desimaalin tarkkuudella:

  1. DecimalFormatin käyttäminen ('0.00')
  2. String.format()-menetelmän käyttäminen ('%.2f')
  3. 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