1

以下:

>>>import struct
>>>struct.unpack('!d', ('40d11998e5035288').decode('hex'))[0]
>>>
>>>17510.3889778429

我希望能够将值 17510.3889778429 打印到 .csv 输出文件。出于某种原因,当我将其写入文件时,它会舍入小数点并且只写:

17510.3889778

我将如何以更高的精度打印它?

谢谢,内德

4

2 回答 2

2

假设您使用的是 Python 的 csv 模块,文档说非字符串数据是使用 格式化的str(),这似乎是发生截断的地方。所以你可以做的一件事是定义你自己的类,以你想要的方式进行字符串化:

class myFloat( float ):
    def __str__(self):
        return "%.12f"%self

 x = myFloat( 17510.3889778429 )
 print "%s"%x

产量:

17510.388977842900
于 2012-06-20T18:38:19.607 回答
1

您可以使用任何适当的方法将数字转换为字符串并将字符串写入 CSV。

>>> x = 17510.3889778429
>>> s = str(x)
>>> s
'17510.3889778'
>>> s = '%17.11f' % x
>>> s
'17510.38897784290'
于 2012-06-20T18:36:02.940 回答