1

以下:

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

値 17510.3889778429 を .csv 出力ファイルに出力できるようにしたいと考えています。何らかの理由で、これをファイルに書き込むと、小数点以下が丸められ、次のようにのみ書き込まれます。

17510.3889778

これをより高い精度で印刷するにはどうすればよいですか?

ありがとう、ネッド

4

2 に答える 2

2

Pythonのcsvモジュールを使用していると仮定すると、ドキュメントには、文字列以外のデータはを使用してフォーマットさstr()れていると記載されており、そこで切り捨てが行われているようです。したがって、実行できることの1つは、必要な方法で文字列化する独自のクラスを定義することです。

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 に答える