반응형
TimeUnit 열거 형을 사용하여 나노초를 초로 변환하는 방법은 무엇입니까?
나노초에서 초로 값을 변환하는 방법은 무엇입니까?
코드 세그먼트는 다음과 같습니다.
import java.io.*;
import java.util.concurrent.*;
..
class Stamper {
public static void main (String[] args) {
long start = System.nanoTime();
//some try with nested loops
long end = System.nanoTime();
long elapsedTime = end - start;
System.out.println("elapsed: " + elapsedTime + "nano seconds\n");
//convert to seconds
TimeUnit seconds = new TimeUnit();
System.out.println("which is " + seconds.toSeconds(elapsedTime) + " seconds");
}}
오류는
Stamper.java:16: enum types may not be instantiated.
이것은 무엇을 의미 하는가?
글쎄, 당신은 1,000,000,000으로 나눌 수 있습니다 :
long elapsedTime = end - start;
double seconds = (double)elapsedTime / 1_000_000_000.0;
TimeUnit
변환 하는 데 사용 하면 결과가 길어 지므로 소수점 정밀도는 잃지 만 정수 정밀도는 유지됩니다.
TimeUnit
열거 형
다음 표현식은 TimeUnit
열거 형 (Java 5 이상)을 사용하여 나노초에서 초로 변환합니다.
TimeUnit.SECONDS.convert(elapsedTime, TimeUnit.NANOSECONDS)
TimeUnit은 열거 형이므로 새 것을 만들 수 없습니다.
다음은 1000000000000ns를 초로 변환합니다.
TimeUnit.NANOSECONDS.toSeconds(1000000000000L);
자세한 정보를 줄이려면 정적 가져 오기를 사용하십시오.
import static java.util.concurrent.TimeUnit.NANOSECONDS;
-따라서 그냥 입력
NANOSECONDS.toSeconds(elapsedTime);
당신은 작성해야합니다 :
long startTime = System.nanoTime();
long estimatedTime = System.nanoTime() - startTime;
변수에 endTime을 지정하면 몇 나노초가 발생할 수 있습니다. 이 방법에서는 정확한 경과 시간을 얻을 수 있습니다.
그리고:
TimeUnit.SECONDS.convert(estimatedTime, TimeUnit.NANOSECONDS)
이것은 정수 값보다 더 정확한 이중 형식으로 시간을 초로 변환합니다.
double elapsedTimeInSeconds = TimeUnit.MILLISECONDS.convert(elapsedTime, TimeUnit.NANOSECONDS) / 1000.0;
반응형
'IT' 카테고리의 다른 글
ng는 내부 또는 외부 명령으로 인식되지 않습니다 (0) | 2020.06.19 |
---|---|
RecyclerView의 맨 아래로 스크롤하는 방법? (0) | 2020.06.19 |
정적 및 밀봉 클래스 차이 (0) | 2020.06.19 |
C의 숨겨진 기능 (0) | 2020.06.19 |
HsOpenSSL API를 올바르게 사용하여 TLS 서버 구현 (0) | 2020.06.19 |