を使用してTimeUnit
、665477 ナノ秒を 0.665477 ミリ秒に変換するにはどうすればよいですか?
long t = TimeUnit.MILLISECONDS.convert(665477L, TimeUnit.NANOSECONDS);
これは常に得られます0
が、小数点の精度が必要です。
短く、エラーが発生しにくい:
double millis = 665477 / 1E6;
ミリ→ミクロ→ナノ
は 2 つのステップであり、各ステップの変換係数は 1000 = 1E3 です。これは、ゼロを数えるよりも 1E6 として読みやすくなります。
これは手動で計算できます
double mil = 665477L/1_000_000.0
1,000,000 で割るだけです。
double millis = 665477 / 1000000.0;
を使用TimeUnit
すると、整数の結果のみが得られます。