使用TimeUnit
,如何将665477纳秒转换为0.665477毫秒?
long t = TimeUnit.MILLISECONDS.convert(665477L, TimeUnit.NANOSECONDS);
这总是给出0
,但我需要小数点精度。
答案 0 :(得分:7)
来自Java文档 - TimeUnit#convert
public long convert(long sourceDuration,TimeUnit sourceUnit)
将给定单位的给定持续时间转换为此单位。 从更精细到更粗糙的粒度的转换会截断,因此会丢失 精确。例如,将999毫秒转换为秒结果 in 0.使用参数从较粗粒度到较细粒度的转换 如果是负数,那么数字溢出会饱和到Long.MIN_VALUE 或Long.MAX_VALUE,如果是肯定的。
所以得到你的答案
double milliseconds = 665477 / 1000000.0;
答案 1 :(得分:3)
除以1,000,000:
double millis = 665477 / 1000000.0;
使用TimeUnit
,您只能获得整数结果。
答案 2 :(得分:3)
您可以手动计算
double mil = 665477L/1_000_000.0
答案 3 :(得分:2)
更短且更不容易出错:
double millis = 665477 / 1E6;
毫 - - > mikro - >纳米
是两步,每一步都有1000 = 1E3的转换faktor; 因此,通过计算零,可以使一百万个更容易被读作1E6。