下列:

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


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

17510.3889778


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

谢谢,
内德

最佳答案

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

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

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


产量:

17510.388977842900

10-04 12:17