1
public static void main(String[] args) throws InterruptedException{
    long sTime =  new Date().getTime();
    Thread.sleep(3234);
    long eTime =  new Date().getTime();
    float diff = ((eTime-sTime)/1000);
    System.out.println(diff);
}

在上面的代码中,我期望输出为 3.234 但它是 3.0。我想要以秒为单位的两次之间的确切差异,并带有小数部分。

4

2 回答 2

6

您正在执行整数除法而不是浮点除法。尝试这个:

float diff = ((float)(eTime-sTime)/1000.0);

当您使用longs 时,我进一步建议您使用double数据类型以获得更高的精度:

double diff = ((double)(eTime-sTime)/1000.0);
于 2013-10-15T11:49:25.657 回答
2
    double sTime =  new Date().getTime();
    Thread.sleep(3234);
    double eTime =  new Date().getTime();
    double diff = ((eTime-sTime)/1000);
    System.out.println(diff);
于 2013-10-15T11:53:29.947 回答