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'不應該嗎?這是決定回報價值的分母。 – 2011-12-26 23:03:58
做'System.currentTimeMillis() - startTime/1000.0f'可能不太難看。 – 2011-12-26 23:04:19
啊,是的,你是對的。 – Mysticial 2011-12-26 23:05:03
而是由1000分除以1000.0的。這樣做,而不是做整數除法,你做浮點除法。
[Java float division precision]的可能重複(http://stackoverflow.com/questions/7286681/java-float-division-precision) – 2011-12-26 23:04:24