Displaying seconds in 3 decimal places. - java

WoLv3rine picture WoLv3rine · May 15, 2012 · Viewed 11.5k times · Source

I am using milliseconds in my java program and converting it to seconds. After my method does this, it returns seconds in a long format.

System.out.println("[" + threadID + "]" + " " + "SeqSum res=" + grandTotal + " secs=" + stopTime);

I have used the variable stopTime to display the seconds.

My output is currently secs=0 It needs to be secs=0.000

I need it to be displayed to 3 decimal places using system.out.println() or system.out.format()

How can I reword my print statement so that I get the output secs=0.000?

Please help

Answer

TofuBeer picture TofuBeer · May 15, 2012

Milliseconds are a long, and don't have decimal places. You will need to divide them by 1000.0f to get them into fractional seconds. Then you will need to use the format method to limit them to 3 decimal places.

Something like:

   final long ms;
   final float sec;

   ms = System.currentTimeMillis();
   sec = ms / 1000.0f;
   System.out.format("%.3f", sec);