Java将64位整数解释为浮点值



我有一个64位整数,我想将其解释为浮点。

我并不是说我想重新分配4到4.0之类的内容。

我有以下8个字节的数据:

十二月(int):4619191942746344941

十二月(浮动):6.6666000000000000

十六进制:401AAA9930BE0DED

我在java代码的一个变量中存储了4619191942746344941。如何将其转换为6.6666000000000000?

使用Double.longBitsToDouble:

class Test { 
  public static void main(String[] args) {
    System.out.println(Double.longBitsToDouble(0x401AAA9930BE0DEDl));
  }
}

打印

6.6666

您可以使用Double.longBitsToDouble方法将恰好位于long中的double的位表示转换为double

long test = 0x401aaa9930be0dedL;
double d = Double.longBitsToDouble(test);
System.out.println(d);

输出:

6.6666

如果您真正需要的话,您总是可以将结果double强制转换为float

最新更新