2016-07-12 3 views
1

現在、実際には小さな値で作業していますが、-0.000212683575のような値をファイルに書き込もうとすると、- 2.12683575e-04。 問題は、この値を-0.000212683575と書いています。数字が多すぎる場合は-0.00021268です。ファイル(Python)に-2.12683575e-04の実際の値を書き込む方法

どうすればいいですか?私は、Python 2.7

を使用

ファイルに番号を書いている間、あなたは文字列としてそれを書くことができ、それはあなたが必要なすべてのことでしょう非常に

+2

これまでに何を試みましたか?また、「本当の価値」はどういう意味ですか? – Li357

+1

'-2.000012683575!= -2.12683575e-04'! –

+0

私が本当の価値を意味するのは、** - 2.12683575e-04 **の代わりに** - 0.00021268357 **をファイルに書くことです。 'file.write(str(number))'のようなものを試してみると、私のファイルに書き込まれます** - 2.12683575e-04 ** –

答えて

2

Pythonではフォーマットを選択できます。私たちはへの書き込み時に

>>> '{:.9f}'.format(x) 
'-0.000212684' 

我々はこれらのフォーマットを使用することができます。この形式は、あなたが好む進数を与え、

>>> x = -0.00021268357 
>>> '{:.2e}'.format(x) 
'-2.13e-04' 

をしかし、たとえば、これはあなたがしたくない、科学的表記法を提供しますあなたがformat方法について読むことができます

>>> with open('output', 'w') as f: 
...  f.write('{:.9f}'.format(x)) 
... 
>>> open('output').read() 
'-0.000212684' 

、およびそのすべての複雑で強力な機能、here:ファイル。

Pythonはprintfスタイルの書式も提供しています。例:

>>> '%f' % x 
'-0.000213' 
>>> '%e' % x 
'-2.126836e-04' 
0

、ありがとうございました。 ex:

>>> num = -0.000212683575 
>>> f = open("a.txt","w") 
>>> f.write(str(num)) 
>>> f.close() 
>>> open("a.txt","r").read() 
'-0.000212683575' 
>>> 
+0

私は試みましたが、私の場合は動作しませんでした。しかし、John1024のソリューションは機能しました! ところで、助けてくれてありがとう –

関連する問題