long startTime = System.currentTimeMillis();
float resultTime= (System.currentTimeMillis() - startTime)/1000;
System.out.println("Result time : " + resultTime);
結果は常に1.0または2.0ような丸みを帯びた値です。 1.234のような正確な結果を得るにはどうすればよいですか?二進値
long startTime = System.currentTimeMillis();
float resultTime= (System.currentTimeMillis() - startTime)/1000;
System.out.println("Result time : " + resultTime);
結果は常に1.0または2.0ような丸みを帯びた値です。 1.234のような正確な結果を得るにはどうすればよいですか?二進値
あなたは整数除算を行っています。あなたが分割を行う前にfloat
キャスト(その整数に切り捨て):
float resultTime= (float)(System.currentTimeMillis() - startTime)/1000.0f;
これは.../1000.0f'でなければなりませんか?それは戻り値を決定する分母です。 –
'System.currentTimeMillis() - startTime/1000.0f'を実行するのはおそらくあまり醜いでしょう。 –
ああ、あなたはどちらも正しい。 – Mysticial
代わり1000.0によって1000分割により分割します。このように、整数除算を行う代わりに浮動小数点除算を行います。
[Javaの浮動小数点精度](http://stackoverflow.com/questions/7286681/java-float-division-precision) –