AC程序将连续的双精度喷出到二进制文件中.我希望将它们读成Python.我试过用struct.unpack('d',f.read(8))
编辑:我在C中使用以下内容来编写随机双数
r = drand48();
fwrite((void*)&r, sizeof(double), 1, data);
Run Code Online (Sandbox Code Playgroud)
错误现在已修复,但我无法读取第一个值.对于所有0.000 ..数字,它将其读作3.90798504668055,但其余的都很好.
我认为您实际上正确地读取了数字,但对显示感到困惑。当我从您提供的文件中读取数字时,我得到“ 3.907985046680551e-14” - 这几乎但不完全为零(扩展形式为 0.000000000000039)。我怀疑你的 C 代码只是以低于 python 的精度打印它。
[编辑] 我刚刚尝试用 C 读取文件,并且得到相同的结果(尽管精度稍低:3.90799e-14)(使用 printf("%g", val)),所以我想如果这个值这是不正确的,它发生在写作方面,而不是阅读方面。