gpt4 book ai didi

python - 从用 C 创建的二进制文件中读取 double 值的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:17:45 25 4
gpt4 key购买 nike

一个 C 程序将连续的 double 输出到一个二进制文件中。我希望将它们读入 Python。我尝试使用 struct.unpack('d',f.read(8))

编辑:我在 C 中使用以下代码编写了一个随机 double

r = drand48();
fwrite((void*)&r, sizeof(double), 1, data);

错误现已修复,但我无法读取第一个值。对于所有 0.000.. 数字,它读取为 3.90798504668055,但其余的都很好。

最佳答案

我认为您实际上正确地读取了数字,但对显示感到困惑。当我从您提供的文件中读取数字时,我得到“3.907985046680551e-14”——这几乎但不完全为零(0.000000000000039 扩展形式)。我怀疑你的 C 代码打印出来的精度不如 python。

[编辑] 我刚刚尝试用 C 读取文件,我得到了相同的结果(虽然精度略低:3.90799e-14)(使用 printf("%g", val)),所以我认为如果此值不正确,则发生在写入端,而不是读取端。

关于python - 从用 C 创建的二进制文件中读取 double 值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/631607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com