2016-07-11 9 views
0

何かがどれくらい時間がかかるかを試しています。丸めずに秒を吐き出すことができません。ここでは、IVEが試したものです:私も機能TimeUnit.NANOSECONDS.toSecondsを使用してみました、それは同様に番号を丸め何かがどれくらいの時間を要するか

long beginTime = System.nanoTime(); 
//Do something 
long endTime = System.nanoTime(); 
double time = (endTime-beginTime)/1000000000; 

それは私に1.45秒を与える必要がありますが、それは私に1を与え、それが1445.7191ミリ秒でなければなりませんが、それは私に1446を与えます。

+2

は、代わりに '1000000000.0'で割る試してみてください。あなたは現在、結果として常に整数を生成する整数除算を実行しています。 – luk2302

+0

「1000000000f」を試す – PhotometricStereo

+0

10000000000.0ではなく1e9を使用することをお勧めします(意図的な問題を見つけますか?) –

答えて

2

あなたdivisonの結果は、暗黙的にintにキャストされ、(末尾の「D」を追加します)double値にあなたの除数を変更します。1000000000d

long beginTime = System.nanoTime(); 
// Do something 
long endTime = System.nanoTime(); 
double time = (endTime - beginTime)/1000000000d; 
System.out.println(time);