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

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

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%)

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

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

спасибо заранее

4 ответов


как о String.format()?

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

выход:

output: 123.46

попробуйте так

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

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


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

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

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


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

Если цель-просто распечатки, я бы рекомендовал использовать функцию format класса 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. Они позволяют использовать стандартные форматы, а также передавать описания форматов между методами.

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