#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); } надо выставить стандартную локализацию как английскую, в ней как раз разделитель точка.
Комментариев нет:
Отправить комментарий