Как печатать до двух десятичных знаков в java с помощью построителя строк?

Привет, я пытаюсь распечатать после деления в построителе строк и печати этого строкового конструктора, чтобы показать мне мой код,

string.append("Memomry usage:total:"+totalMemory/1024/1024+
"Mb-used:"+usageMemory/1024/1024+
" Mb("+Percentage+"%)-free:"+freeMemory/1024/1024+
" Mb("+Percentagefree+"%)");

в вышеприведенном коде "totalmemory" и "freememory" имеет двойной тип, имеющий значение байта в точке не null, поэтому я делю его на "1024" два раза, чтобы получить его в "Mb", а "string" является переменной строкового построителя после использования этого кода я просто печатаю его, получая результат, как показано ниже,

Used Memory:Memomry usage: 
total:13.3125Mb-used:0.22920989990234375Mb (0.017217645063086855%)
-free:13.083290100097656Mb (0.9827823549369131%)

Я хочу получить процент в двухмерном месте и значения используемой и свободной памяти в mb, как это "used: 2345.25" в этом патрене помнят

Надеемся на ваши предложения

Спасибо в Advance

4 ответа

Как насчет String.format()?

System.out.println(String.format("output: %.2f", 123.456));

Вывод:

output: 123.46


Попробуйте это

****** d = 1.234567;
 DecimalFormat df = new DecimalFormat("#.##");
 System.out.print(df.format(d));

Используя DecimalFormat, мы можем отформатировать способ, который хотим видеть.


Несмотря на то, что можно использовать NumberFormat и подкласс DecimalFormat для этой проблемы, эти классы предоставляют множество функций, которые могут не потребоваться для вашего приложения.

Если цель - довольно красивая печать, я бы рекомендовал использовать функцию формата класса String. Для вашего конкретного кода это будет выглядеть так:

string.append(String.format("Memomry usage:total:%1.2f Mb-used:%1.2f Mb(%1.2f %%)-free:%1.2f Mb(%1.2f %%)",totalMemory/1024/1024,usageMemory/1024/1024,Percentage,freeMemory/1024/1024,Percentagefree));

Если вы намереваетесь указать стандартный формат, в котором представлены все числа независимо от того, анализируются ли они из строк или отформатированы в строках, я бы рекомендовал использовать синглтоны классов * Format. Они позволяют использовать стандартные форматы, а также передавать описания форматов между методами.

Надеюсь, что вы сможете выбрать правильный метод для использования в своем приложении.


Вы можете использовать DecimalFormat для печати до двух знаков после запятой. Итак, чтобы напечатать x = 2345.2512 с двумя десятичными знаками, вы должны написать

NumberFormat f = new DecimalFormat("#.00");
System.out.println(f.format(x));

который будет печатать 2345.25.

licensed under cc by-sa 3.0 with attribution.