如何在java中自动设置精度

如何在java中自动设置精度,java,time,precision,Java,Time,Precision,我试图计算我写的程序的性能,但我遇到的情况是 long start = System.currentTimeMillis(); my program.... long end = System.currentTimeMillis(); end = end-start; /* Below are things I tried which doesn't work *********prints (same number of 0 as specified in decimalformat****

我试图计算我写的程序的性能,但我遇到的情况是

long start = System.currentTimeMillis();
my program....
long end = System.currentTimeMillis();
end = end-start;

/* Below are things I tried which doesn't work
*********prints (same number of 0 as specified in decimalformat********
NumberFormat formatter = new DecimalFormat("#0.0000");
System.out.print("Execution time is " + formatter.format((end - start) / 1000d) + " seconds");
*********prints number but not able to put it in decimals ********
float time = end-start;
System.out.printf("%3.8f",time);
*/
我如何才能使它在不打印0的情况下打印0.000倍的时间。
例如,如果程序在0.7毫秒内完成,则应显示0.0007秒编辑:我忘记了最初的目的:性能测量 如果只是为了简单的测量,那么您的实际代码很好。 您应该尝试寻找像jvisualvm(包含在jdk中)这样的外部工具,或者如果您想要更高级的东西

您应该尝试使用SimpleDataFormat格式化最终结果

 /**
 * Return date in specified format.
 * @param milliSeconds Date in milliseconds
 * @param dateFormat Date format 
 * @return String representing date in specified format
 */
public static String convertMilliSecondsToDate(long milliSeconds, String dateFormat)
{
    // Create a DateFormatter object for displaying date in specified format.
    DateFormat formatter = new SimpleDateFormat(dateFormat);

    // Create a calendar object that will convert the date and time value in milliseconds to date. 
     Calendar calendar = Calendar.getInstance();
     calendar.setTimeInMillis(milliSeconds);

     return formatter.format(calendar.getTime());
}
可以找到更多的例子


这是一个相当简单的解决方案,但您可以尝试通过解析日期和查看精度并仅显示非空部分来改进它。

您是指前0?请添加所需输出的示例您可以从链接复制相关示例吗?如果链接在将来过时,这会很有帮助。在这种情况下,我不是转换为日期,而是转换为时间。如果我调用了“publicstaticlongconvertstoseconds(longmissions){return(millists/1000);}”,这将不起作用,因为如果我只使用longasprint,它是相同的。如果我使用上面描述的方法,我将输入什么作为dateFormat?