numpy.float64 を文字列に出力して変換する適切な/受け入れられる方法は何ですか? print
使用しただけで、str()
精度が失われることに気付きました。ただし、repr
完全な精度を維持します。例えば:
>>> import numpy
>>> print numpy.float64('6374.345407799015')
6374.3454078
>>> print repr(numpy.float64('6374.345407799015'))
6374.3454077990154
print を呼び出すだけ
str()
で、float64 オブジェクトを呼び出すことになると思います。numpy.float64の__str__()
ようなもので実装されている'%s' % (float(self))
か、何らかの方法で Python の組み込みで float64 をキャストしていfloat()
ますか? 私はこれについて numpy のソースをすばやく調べようとしましたが、何が起こっているのかすぐにはわかりませんでした。オブジェクトを再作成するため
repr()
に使用できる有効な Python コードを返す必要があると常に考えていました。eval()
これは受け入れられた慣例ですか?repr()
幸いなことに、この場合、 numpyはこの慣例に従いません"numpy.float64('6374.345407799015')"
。
だから、これらすべてが私を混乱させます。常に同じ完全な精度を保証しながら、numpy.float64 を文字列に変換および/または出力する正しい方法は何ですか?