10

hi i am trying to print after dividing in string builder and printing that string builder let show me my code ,

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

in above code "totalmemory" and "freememory" is of double type having bytes value in point not null so i divide it by "1024" two times to get it in "Mb" and "string" is variable of string builder after using this code i am simply printing it a am getting result as shown below,

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

i want to get percentage in twodecimal place and values of used and free memory in mb like this "used:2345.25" in this pattren remember

Hopes for your suggestions

Thanks in Advance

MozenRath
  • 9,652
  • 13
  • 61
  • 104
Syed Raza
  • 331
  • 2
  • 13
  • 35

4 Answers4

14

How about String.format()?

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

Output:

output: 123.46
Manish
  • 3,472
  • 1
  • 17
  • 16
2

Try like this

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

Using DecimalFormat, we can format the way we wanted to see.

Jayy
  • 2,368
  • 4
  • 24
  • 35
1

You can use DecimalFormat to print out to two decimal places. So, to print x = 2345.2512 with two decimal places, you would write

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

which will print 2345.25.

Adam Mihalcin
  • 14,242
  • 4
  • 36
  • 52
1

Even though it is possible to use NumberFormat and it's subclass DecimalFormat for this issue, these classes provide a lot of functionality that may not be required for your application.

If the objective is just pretty printing, I would recommend using the format function of the String class. For your specific code it would look like this:

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

If you are intending to specify a standard format in which all numbers are represented irrespective of whether they are being parsed from strings or formatted to strings, then I would recommend using singletons of the *Format classes. They allow you to use standard formats and also to pass format descriptions between methods.

Hope that helps you select the right method to use in your application.

Nishant Sharma
  • 360
  • 1
  • 5