繁体   English   中英

Java:使用currentTimeMillis()获取时间长,如何以X小数位精度输出?

[英]Java: Getting time with currentTimeMillis() as a long, how do I output it with X decimal place accuracy?

我有一个代表System.currentTimeMillis()的long。 然后,我在代码中稍后再测量一段时间。 我减去了两个,但现在想要看到时间到3位小数。

目前我在打印long var时使用%d来格式化输出,并且只获取非十进制值。

long是一个整数。 它没有小数位。 你的意思是你想看到秒到三位小数?

long start = System.currentTimeMillis();

long time = System.currentTimeMillis() - start;
System.out.printf("Took %.3f%n", time/1e3);

你可以对nanoTime做同样的事情,但它仍然是一个整数。 如果要查看小数位,则需要除以1e3(微秒)或1e6(毫秒)或1e9(秒)

您需要将数字除以1000.0 ,然后使用"%.3f"显示它。 所以像

String.format("%.3f", number / 1000.0)

你需要double因为你想要一个双倍。 如果你除以int那么它将舍入到最近的int。 您不能使用%d因为它仅用于显示整数。 您必须使用%f表示浮点数和双精度数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM