我有一个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
我也尝试使用浮点数表示值。
是否有人能够提供更好的转换/显示方式,也许可以使用格式输出语句?
感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:9)
我认为你需要:DecimalFormat
System.out.println("solution Time : " + new DecimalFormat("#.##########").format(seconds) + " Seconds");
答案 1 :(得分:5)
System.out.format("solution Time : %f Seconds", seconds);
表示经典的非指数浮点数。