时间不会将纳秒转换为秒

时间:2013-01-31 01:55:27

标签: java performance

如果我的代码有任何问题,有人可以抓住。我试图计算这个阶乘的时间并将其转换为秒,但它似乎打印出错误的值。谢谢!

    long startTime = System.nanoTime();
    BigInteger factorial_minute = doFactorial(50000);
    long endTime = System.nanoTime();

    String factorial_minute_str = factorial_minute.toString();
    System.out.println("Largest n! in one minute = " + factorial_minute);
    System.out.println("n! in one minute Amount of Digits: " + factorial_minute_str.length()); // Print the length also
    System.out.println("Total execution time: " + (int)((endTime - startTime)/1000000000 + " seconds") );

输出为

  

总执行时间:4秒

编辑,我将其更改为1000000000,但似乎输出仍然是错误的。

1 个答案:

答案 0 :(得分:4)

一纳秒是十亿分之一秒,而不是百万分之一秒。向你的除数添加三个零。

(endTime - startTime)/1000000000