Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java从currentTimeMillis到秒,给出0或1_Java - Fatal编程技术网

Java从currentTimeMillis到秒,给出0或1

Java从currentTimeMillis到秒,给出0或1,java,Java,我正在尝试对大约500万个元素进行排序,需要记录所需的时间。 我正在做以下工作: long startTime = (System.currentTimeMillis()); My Sorting Algorithm {} long totalTime = (System.currentTimeMillis() - startTime); 以毫秒为单位,我得到了适当的时间,但当我尝试将其转换为秒时,如下所示: long totalTime = ((System.currentTimeMilli

我正在尝试对大约500万个元素进行排序,需要记录所需的时间。 我正在做以下工作:

long startTime = (System.currentTimeMillis());
My Sorting Algorithm {}
long totalTime = (System.currentTimeMillis() - startTime);
以毫秒为单位,我得到了适当的时间,但当我尝试将其转换为秒时,如下所示:

long totalTime = ((System.currentTimeMillis() - startTime)/1000);
它给了我0或1,这是不正确的

我还试着把它翻了一番,得到了0.0分 双总时间=((System.currentTimeMillis()-startTime)/1000)

实际上,时间单位也给出了0 时间单位。毫秒。到秒(总时间)


有人能帮我指出哪里出了问题吗?

你需要除以1000.0


如果你想做微基准点,不要自己做,使用JMH:

你正在使用整数除法并将结果分配给整数类型。因此,最终结果总是整数

要修复,请使用:

double totalTime = ((System.currentTimeMillis() - startTime)/1000.0);

您正在体验整数除法的样子。您将在整数除法之后转换为double,因此不会产生任何差异。除以1000.0,并可能在执行除法之前将分子转换为双精度:

double d = ((double) (System.currentTimeMillis()-start))/1000.0;

啊!非常感谢大家。。我总是犯那个错误