使用TimeUnit,如何将665477纳秒转换为0.665477毫秒?
long t = TimeUnit.MILLISECONDS.convert(665477L, TimeUnit.NANOSECONDS);
Run Code Online (Sandbox Code Playgroud)
这总是给出,0但我需要小数点精度.
来自Java Documentation - TimeUnit #convert
public long convert(long sourceDuration,TimeUnit sourceUnit)
Run Code Online (Sandbox Code Playgroud)
将给定单位的给定持续时间转换为此单位.从较细粒度到较粗粒度的转换会截断,因此会失去精度.例如,将999毫秒转换为秒会导致0.从较粗粒度到较细粒度的转换,如果为负,则数字溢出的参数饱和为Long.MIN_VALUE,如果为正,则为Long.MAX_VALUE.
所以得到你的答案
double milliseconds = 665477 / 1000000.0;
Run Code Online (Sandbox Code Playgroud)
更短且不易出错:
double millis = 665477 / 1E6;
Run Code Online (Sandbox Code Playgroud)
毫 -> 微米 -> 纳米
分为两步,每步的转换系数为1000 = 1E3;因此等于一百万,比计数零更容易读作 1E6。
| 归档时间: |
|
| 查看次数: |
8198 次 |
| 最近记录: |