Как правильно отображать наночастицы в секунду

У меня есть алгоритм BFS для решения 8-Puzzle, и одно из требований проекта - вывести количество времени, которое требуется, чтобы найти самое мелкое решение.

я использую System.nanoTime() следить за временем выполнения приложений, потому что оно решает большинство заданных задач менее чем за секунду.

Проблема, с которой я сталкиваюсь, заключается в том, куда я обращаюсь nanoTime в секундах, он отображается в странном формате.

используется следующий код:

final long startTime = System.nanoTime();

//algorithm code removed for simplicity this all functions correctly


final long duration = System.nanoTime() - startTime;
final double seconds = ((double)duration / 1000000000);
System.out.println("Nano time total: " + duration);
System.out.println("solution Time : " + seconds + " Seconds");

Это производит вывод:

 Nano time total: 916110
 solution time : 9.1611E-4 Seconds 

Я также пытался использовать поплавки для представления значений.

Кто-нибудь может предоставить лучший способ для преобразования / отображения, может быть, использовать оператор вывода формата?

Спасибо, что нашли время, чтобы прочитать мой вопрос.

2 ответа

Решение

Я думаю, что вам нужно: DecimalFormat

System.out.println("solution Time : " + new DecimalFormat("#.##########").format(seconds) + " Seconds");
System.out.format("solution Time : %f Seconds", seconds);

для классического неэкспоненциального числа с плавающей запятой.

Другие вопросы по тегам