logo

Како заокружити дупло и плутати до две децимале у Јави?

У Јави, када користимо двоструки тип података пре променљиве, он представља 15 цифара после децималне тачке. Али понекад су нам потребна само два децимална места после децималних зареза као да представљају рупије и друге јединице. Дакле, у овом одељку ћемо разговарати о начини за заокруживање удвостручених и плутајућих до две децимале заједно са одговарајућим примером и Јава програмима.

адверсариал сеарцх
Како заокружити дупло и плутати до две децимале у Јави

Јава пружа следећа три начина да прикажете дупло на 2 децимале:

  1. Коришћење децималног формата ('0.00')
  2. Коришћење Стринг.формат() методе ('%.2ф')
  3. Коришћење БигДецимал

Хајде да разговарамо о горе наведеним начинима један по један.

Коришћење децималног формата

Јава ДецималФормат је конкретна поткласа класе НумберФормат која се користи за форматирање децималних бројева. класа пружа сетРоундингМоде() метод за приказивање двоструког броја до две децимале.

Синтакса:

 public void setRoundingMode(RoundingMode roundingMode) 

Он прихвата режим заокруживања као параметар и замењује метод сетРоундингМоде() за НумберФормат класа. То баца НуллПоинтерЕкцептион ако не наведемо никакав Режим заокруживања. Следећа табела описује различите начине заокруживања.

Ставите број УП ДОВН ПЛАФОН ПОД ХАЛФ_УП ХАЛФ_ДОВН ХАЛФ_ЕВЕН НЕПОТРЕБАН
5.5 6 5 6 5 6 5 6 тхров АритхметицЕкцептион
2.5 3 2 3 2 3 2 2 тхров АритхметицЕкцептион
1.6 2 1 2 1 2 2 2 тхров АритхметицЕкцептион
1.1 2 1 2 1 1 1 1 тхров АритхметицЕкцептион
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 тхров АритхметицЕкцептион
-1.6 -2 -1 -1 -2 -2 -2 -2 тхров АритхметицЕкцептион
-2.5 -3 -2 -2 -3 -3 -2 -2 тхров АритхметицЕкцептион
-5.5 -6 -5 -5 -6 -6 -5 -6 тхров АритхметицЕкцептион

Користили смо још један метод класе ДецималФормат ис тхе формат() методом. Он форматира стринг да би произвео стринг.

Синтакса:

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

Метод прихвата три параметра број, резултат и позицију. Али последња два параметра су опциона. Враћа форматирани низ бројева. Метода баца АритхметицЕкцептион ако РоундингМоде је подешен на НЕПОТРЕБАН.

ТвоДецималПлаце1.јава

конверзија из стринга у инт у Јави
 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 } } 

Излаз:

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

Коришћење Стринг.формат() методе

Јава такође обезбеђује метод формат() за форматирање броја. Припада класи Стринг. Користећи методу, може се форматирати било који број и стринг у складу са тим.

Да бисмо променили број до две децимале, користимо се %.2ф да форматирате број. Имајте на уму да не можемо заокружити број у Стринг.формат() методи, увек заокружујући на пола навише.

Синтакса:

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

Метод прихвата следећа два параметра:

формат: То је форматирани стринг који желимо.

аргс: Ово су аргументи на које се позивају спецификације формата у стрингу формата.

Враћа форматирани стринг. То баца ИллегалФорматЕкцептион ако стринг формата садржи недозвољену синтаксу. Такође баца НуллПоинтерЕкцептион ако наведемо формат као нулл.

ТвоДецималПлаце2.јава

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

Излаз:

нумпи тачка производ
 Double Number: 10.98765432167 Double Number: 10.99 Double Number: 10.99 

Коришћење БигДецимал

Такође можемо да користимо Јава БигДецимал Цласс за приказ броја до две децимале. То припада јава.матх.БигДецимал пакет. Проширује класу Нумбер и имплементира Упоредиво интерфејс.

Класа обезбеђује метод сетСцале(). Синтакса је следећа:

Синтакса:

јсон из јава објекта
 setScale(int newScale, RoundingMode roundingMode) 

Метод прихвата два параметра:

нова скала: Скала БигДецимал вредности која се враћа.

Режим заокруживања: Режим заокруживања који желимо да применимо.

Враћа БигДецимал чија је скала наведена вредност и чија је нескалирана вредност одређена множењем или дељењем ове БигДецимал непромењене вредности одговарајућом потенцијом десет да би се одржала њена укупна вредност.

Метода избацује АритхметицЕкцептион ако РоундингМоде је подешен на НЕПОТРЕБАН . РоундингМоде је енум који обезбеђује РоундингМоде о коме смо горе говорили.

Други метод који смо користили у овом програму је БигДецимал.доублеВалуе(). Конвертује БигДецимал у а дупло број. Хајде да видимо пример.

ТвоДецималПлаце3.јава

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

Излаз:

 Double Number: 12.4565652239 Up to two decimal places: 12.46