Вопрос-ответ

How to print a float with 2 decimal places in Java?

Как напечатать число с плавающей запятой с 2 знаками после запятой в Java?

Могу ли я сделать это с помощью System.out.print?

Переведено автоматически
Ответ 1

Вы можете использовать printf метод, например, так:

System.out.printf("%.2f", val);

Короче говоря, %.2f синтаксис говорит Java возвращать вашу переменную (val) с 2 десятичными знаками (.2) в десятичном представлении числа с плавающей запятой (f) с начала спецификатора формата (%).

Есть и другие символы преобразования, которые вы можете использовать помимо f:


  • d: десятичное целое число

  • o: восьмеричное целое число

  • e: значение с плавающей запятой в научной нотации

Ответ 2

Вы можете использовать DecimalFormat. Один из способов его использования:

DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
System.out.println(df.format(decimalNumber));

Другой способ заключается в его создании с использованием #.## формата.

Я нахожу все параметры форматирования менее удобочитаемыми, чем вызов методов форматирования, но это вопрос предпочтений.

Ответ 3

Я бы предложил использовать String.format() если вам нужно значение в виде String в вашем коде.

Например, вы можете использовать String.format() следующим образом:

float myFloat = 2.001f;

String formattedString = String.format("%.02f", myFloat);
Ответ 4
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
java