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

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

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

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

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

я хочу получить процент в двух десятичных разрядах и значения используемой и свободной памяти в мегабайтах, например, «используется: 2345,25» в этом шаблоне, помните

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

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


person Syed Raza    schedule 02.03.2012    source источник
comment
Почему «используя StringBuilder»? Это неправильная технология для этой проблемы. Смотрите ответы...   -  person user207421    schedule 02.03.2012


Ответы (4)


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

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

Вывод:

output: 123.46
person Manish    schedule 02.03.2012

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

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

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

person Jayy    schedule 02.03.2012

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

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

который напечатает 2345,25.

person Adam Mihalcin    schedule 02.03.2012

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

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

person Nishant Sharma    schedule 02.03.2012