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

标签 vala

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

    public double data;

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

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

最佳答案

这对我有用:

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以便转换成功。

关于vala - 如何从 DataInputStream 读取 8 字节数据并将其解释为 Vala 中的 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652057/

相关文章:

timer - 用于创建计时器的 Vala/SDL 回调

gtk - 如何获取列表框中的行数?

panel - Elementary OS 下带有 Vala 应用程序的简单 AppIndicator

linux - 为什么 accountsservice 总是返回一个空的用户列表?

vala - 如何从 Vala 中的字符串创建输入流

vala - Flatpak bundle libmysqlclient

css - Vala 未连接到样式表

cross-platform - 是否可以使用 GLib 进行操作系统检测?

parsing - 为什么有些编译器更喜欢手工制作的解析器而不是解析器生成器?

gtk - 如何在 Gtk.Stack 上捕获鼠标点击