Java解释64位整数作为浮点数

时间:2014-09-12 22:23:30

标签: java double

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

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

我有8个字节的数据:

Dec(int):4619191942746344941

Dec(浮动):6.6666000000000000

Hex:401AAA9930BE0DED

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

2 个答案:

答案 0 :(得分:5)

使用Double.longBitsToDouble

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

打印

6.6666

答案 1 :(得分:4)

您可以使用double方法将恰好位于long的{​​{1}}的位表示转换为double

Double.longBitsToDouble

输出:

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

如果你真正需要的话,你总是可以将结果6.6666 投射到double