2011-12-26 87 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的。这样做,而不是做整数除法,你做浮点除法。