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ā parādīt dubultā līdz divām zīmēm aiz komata kopā ar atbilstošu piemēru un Java programmām.
Java nodrošina šādus trīs veidus, kā parādīt dubulto ciparu 2 zīmēs aiz komata:
- DecimalFormat ('0.00') izmantošana
- String.format() metodes izmantošana ('%.2f')
- 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:
bezmaksas vs bezmaksas
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
'prim's algoritms'
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.
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.
binārā koka šķērsošana
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:
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:
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.
sql servera pivot
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