2011-12-26 140 views
1
long startTime = System.currentTimeMillis(); 
float resultTime= (System.currentTimeMillis() - startTime)/1000; 
System.out.println("Result time : " + resultTime); 

結果總是圓形的值等1.02.0。 如何獲得確切結果,如1.234雙十進制值

+0

[Java float division precision]的可能重複(http://stackoverflow.com/questions/7286681/java-float-division-precision) – 2011-12-26 23:04:24

回答

4

你在做整數除法。你做除法之前(其向下取整爲整數)

演員到float

float resultTime= (float)(System.currentTimeMillis() - startTime)/1000.0f; 
+0

這應該是...'/ 1000.0f'不應該嗎?這是決定回報價值的分母。 – 2011-12-26 23:03:58

+0

做'System.currentTimeMillis() - startTime/1000.0f'可能不太難看。 – 2011-12-26 23:04:19

+0

啊,是的,你是對的。 – Mysticial 2011-12-26 23:05:03

2

而是由1000分除以1000.0的。這樣做,而不是做整數除法,你做浮點除法。