2013-11-02 1 views
4

8- 퍼즐을 해결하는 BFS 알고리즘이 있으며 프로젝트 요구 사항 중 하나는 가장 얕은 솔루션을 찾는 데 걸리는 시간을 출력하는 것입니다.정확하게 나노 시간을 두 번째 변환으로 표시하는 방법

나는 주어진 퍼즐의 대부분을 1 초 이내에 해결하기 때문에 응용 프로그램 실행 시간을 추적하기 위해 System.nanoTime()을 사용하고 있습니다.

내가 가지고있는 문제는 whe을 초로 변환하면 이상한 형식으로 표시됩니다.

다음과 같은 코드가 사용된다 :

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 

는 또한 I 값을 나타내는 플로트를 사용하여 시도 하였다.

은 누구나 변환/표시하는 더 좋은 방법을 제공 할 수 있습니다. 아마도 형식 출력 문장을 사용할 수 있습니까?

제 질문을 읽어 주셔서 감사합니다.

+4

9.1611E-4는 수를 나타내는 유효한 방법이다. 그것은 단지 과학적 표기법입니다. – hexafraction

+0

두배의 서식 지정에 관한 많은 질문이 있습니다. 그들을 둘러 볼 수 있습니다. – Justin

답변

7

난 당신이 필요하다고 생각 :에 DecimalFormat

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

고맙습니다.저기서 이런 방법이 있다는 것을 몰랐습니다. 이제 API를 둘러 보는 데 약간의 시간을 할애 할 것입니다. 모두에게 감사드립니다. –

5
System.out.format("solution Time : %f Seconds", seconds); 

고전적인 비 지수 플로팅 포인트 번호입니다.

관련 문제