1

如何使用 Python 编写双精度文件二进制文件?我目前正在执行以下操作,但它给了我单精度文件:

#!/usr/bin/env python

import struct

data =[2.3715231753176,9.342983274982732]

output_file = "test.dat"
out_file = open(output_file,"wb")
s = struct.pack('f'*len(data), *data)
out_file.write(s)
out_file.close()
4

2 回答 2

7

用于d编写双精度浮点数:

s = struct.pack('d'*len(data), *data)

f只是精度。请参阅模块文档的格式字符部分:struct

对于'f''d'转换代码,打包表示使用 IEEE 754 binary32 (for 'f') 或 binary64 (for 'd') 格式,而不考虑平台使用的浮点格式。

于 2013-04-24T10:57:03.070 回答
3

您错误地使用了格式字符串。要使用双精度,请使用“d”而不是“f”。请参阅文档以获取格式字符列表。

于 2013-04-24T10:57:11.563 回答