Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Отображение двух знаков после запятой при округлении

#java


Приветствую всех. Кто знает как сделать чтобы после округления числа типа double
стояли два знака после него.

int i=3,j=7;
double var, result;
var = (double)(i*100)/j;
result = Math.rint(100.0 * var) / 100.0;
System.out.println(var);
System.out.println(result);


выдает  42.857142857142854

42.86

Но если округление проходит до целого числа, например при i=1 j=4 то результатом
будет 25.0. Но мне надо чтобы было 25.00. Спасибо.
    


Ответы

Ответ 1



Можно воспользоваться java.util.Formatter, разделитель целой и десятичной частей зависит от java.util.Locale: System.out.println(String.format("%(.2f Default locale", var)); System.out.println(String.format(Locale.ENGLISH, "%(.2f English locale", var)); System.out.println(String.format(new Locale("ru"), "%(.2f Russian locale", var)); Выведет: 42.86 Default locale 42.86 English locale 42,86 Russian locale

Ответ 2



Чтобы отображать два знака после запятой при преобразовании числа в строку, используйте класс java.text.DecimalFormat. String pattern = "##0.00"; DecimalFormat decimalFormat = new DecimalFormat(pattern); String format = decimalFormat.format(25.0000); System.out.println(format); выведет: 25.00

Ответ 3



public static void main (String[] args) { Locale locale = new Locale("en"); Locale.setDefault(locale); String pattern = "##0.00"; DecimalFormat decimalFormat = new DecimalFormat(pattern); String format = decimalFormat.format(25.0000); System.out.println(format); } надо выставить стандартную локализацию как английскую, в ней как раз разделитель точка.

Комментариев нет:

Отправить комментарий