如何在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?