如何从DataInputStream中读取8个字节的数据,并在Vala中将其解释为double

时间:2014-12-26 01:31:33

标签: vala

我正在寻找相当于的 Vala的java.io.DataInputStream.readDouble()。 它甚至可能吗? 目前我有:

    public double data;

    public override void load (DataInputStream dis) throws IOError {
        data = dis.read_int64 ();
    }

但它只是将int64转换为双倍,这不是我想要的。 我尝试过所有类型的转换和取消引用,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:2)

这对我有用:

int main()
{
    int64 foo = 0; // Whatever value you have
    double data = *(double*)(&foo); // This is where the "magic" happens
    stdout.printf("%f", data);
    return 0;
}

请注意,您可能需要为转换设置正确的byte order才能成功。