5

我有一个 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 

我也尝试过使用浮点数来表示值。

是否有人能够提供更好的转换/显示方式,也许使用格式输出语句?

感谢您花时间阅读我的问题。

4

2 回答 2

10

我认为您需要: DecimalFormat

System.out.println("solution Time : " + new DecimalFormat("#.##########").format(seconds) + " Seconds");
于 2013-11-02T17:48:04.733 回答
5
System.out.format("solution Time : %f Seconds", seconds);

对于经典的非指数浮点数。

于 2013-11-02T17:17:37.370 回答