logo

Kā Java valodā noapaļot dubultā un peldēt līdz divām zīmēm aiz komata?

Java, ja mēs izmantojam dubultu datu tipu pirms mainīgā, tas apzīmē 15 ciparus aiz komata. Bet dažreiz mums ir nepieciešamas tikai divas zīmes aiz komata, piemēram, lai attēlotu rūpijas un citas vienības. Tāpēc šajā sadaļā mēs apspriedīsim veidi, kā noapaļot dubultā un peldēt līdz divām zīmēm aiz komata kopā ar atbilstošu piemēru un Java programmām.

centos vs redhat
Kā noapaļot dubultā un peldēt līdz divām zīmēm aiz komata Java valodā

Java nodrošina šādus trīs veidus, kā parādīt dubulto ciparu 2 zīmēs aiz komata:

  1. DecimalFormat ('0.00') izmantošana
  2. String.format() metodes izmantošana ('%.2f')
  3. Izmantojot BigDecimal

Apspriedīsim iepriekš minētos veidus pa vienam.

DecimalFormat izmantošana

Java DecimalFormat ir konkrēta klases NumberFormat apakšklase, ko izmanto decimālskaitļu formatēšanai. klase nodrošina setRoundingMode() metode, lai parādītu dubultciparu līdz divām zīmēm aiz komata.

Sintakse:

 public void setRoundingMode(RoundingMode roundingMode) 

Tas pieņem noapaļošanas režīmu kā parametru un ignorē setRoundingMode() metodi Skaitļa formāts klasē. Tas met NullPointerException ja nenorādīsim nekādu roundingMode. Nākamajā tabulā ir aprakstīti dažādi noapaļošanas režīmi.

Ielieciet numuru UP UZ LEJU GRIESTI GRĪVA HALF_UP HALF_DOWN HALF_EVEN NE VAJADZĪGI
5.5 6 5 6 5 6 5 6 mest AritmētiskoIzņēmumu
2.5 3 2 3 2 3 2 2 mest AritmētiskoIzņēmumu
1.6 2 1 2 1 2 2 2 mest AritmētiskoIzņēmumu
1.1 2 1 2 1 1 1 1 mest AritmētiskoIzņēmumu
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 mest AritmētiskoIzņēmumu
-1.6 -2 -1 -1 -2 -2 -2 -2 mest AritmētiskoIzņēmumu
-2.5 -3 -2 -2 -3 -3 -2 -2 mest AritmētiskoIzņēmumu
-5.5 -6 -5 -5 -6 -6 -5 -6 mest AritmētiskoIzņēmumu

Mēs esam izmantojuši citu DecimalFormat klases metodi formāts () metodi. Tas formatē virkni, lai izveidotu virkni.

Sintakse:

 public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) 

Metode pieņem trīs parametru numuru, rezultātu un pozīciju. Bet pēdējie divi parametri nav obligāti. Tas atgriež formatētu skaitļu virkni. Metode met Aritmētiskais izņēmums ja Noapaļošanas režīms ir iestatīts uz NE VAJADZĪGI.

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 } } 

Izvade:

 Double Number: 123.9876543567 Double Number: 123.99 Before Rounding: 123.98 After Rounding Up: 123.99 

Izmantojot String.format() metodi

Java nodrošina arī format() metodi, lai formatētu numuru. Tas pieder pie stīgu klases. Izmantojot šo metodi, var attiecīgi formatēt jebkuru skaitli un virkni.

ja vēl ja vēl ja java

Lai mainītu skaitli līdz divām zīmēm aiz komata, mēs izmantojam %.2f lai formatētu numuru. Ņemiet vērā, ka mēs nevaram noapaļot skaitli String.format() metodē, vienmēr noapaļojot uz pusi.

Sintakse:

 public static String format(String format, Object... args) 

Metode pieņem šādus divus parametrus:

formāts: Tā ir formatēta virkne, kuru mēs vēlamies.

args: Šie ir argumenti, uz kuriem formāta virknē atsaucas formāta specifikācijas.

Tas atgriež formatētu virkni. Tas met IllegalFormatException ja formāta virkne satur nelegālu sintakse. Tā arī met NullPointerException ja formātu norādām kā nulli.

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); } } 

Izvade:

alfabēta cipari
 Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99 

Izmantojot BigDecimal

Mēs varam arī izmantot Java BigDecimal Class, lai parādītu skaitli līdz divām zīmēm aiz komata. Tas pieder java.math.BigDecimal iepakojums. Tas paplašina skaitļu klasi un ievieš Salīdzināms saskarne.

Klase nodrošina metodi setScale (). Sintakse ir šāda:

awt java

Sintakse:

 setScale(int newScale, RoundingMode roundingMode) 

Metode pieņem divus parametrus:

NewScale: Atgriežamās BigDecimal vērtības skala.

noapaļošanas režīms: Noapaļošanas režīms, kuru vēlamies lietot.

Tas atgriež BigDecimal, kuras skala ir norādītā vērtība un kuras nemērogotā vērtība tiek noteikta, reizinot vai dalot šīs BigDecimal nemērogotās vērtības ar atbilstošu desmit pakāpju, lai saglabātu tās kopējo vērtību.

Metode met Aritmētiskais izņēmums ja Noapaļošanas režīms ir iestatīts uz NE VAJADZĪGI . RoundingMode ir saraksts, kas nodrošina iepriekš apspriesto RoundingMode.

Vēl viena metode, ko esam izmantojuši šajā programmā, ir BigDecimal.doubleValue(). Tas pārvērš BigDecimal par a dubultā numuru. Apskatīsim piemēru.

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); } } 

Izvade:

 Double Number: 12.4565652239 Up to two decimal places: 12.46