Отображение секунд с 3 знаками после запятой. - Джава

Я использую миллисекунды в своей Java-программе и конвертирую их в секунды. После того, как мой метод сделает это, он вернет секунды в длинном формате.

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

Я использовал переменную stopTime для отображения секунд.

Мой вывод в настоящее время секунд = 0. Он должен быть секунд = 0,000

Мне нужно, чтобы он отображался с точностью до 3 знаков после запятой, используя system.out.println() или system.out.format()

Как я могу переформулировать свой оператор печати, чтобы получить выходные секунды = 0,000?

Пожалуйста помоги


person WoLv3rine    schedule 15.05.2012    source источник
comment
Какого типа ваша переменная stopTime? Нам нужно больше деталей.   -  person Rob I    schedule 15.05.2012
comment
Моя переменная stopTime была длинной, но я просто изменил ее на число с плавающей запятой, чтобы я мог использовать формат с плавающей запятой для печати в 3 d.ps.   -  person WoLv3rine    schedule 15.05.2012


Ответы (1)


Миллисекунды длинные и не имеют десятичных знаков. Вам нужно будет разделить их на 1000,0f, чтобы получить их в долях секунды. Затем вам нужно будет использовать метод формата, чтобы ограничить их до 3 знаков после запятой.

Что-то вроде:

   final long ms;
   final float sec;

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