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