2016-06-23 11 views
0

OSXでPython 2.7を使用すると、出力はxと異なり、Python double/floatをより正確に制御する方法があるのだろうかと疑問に思っていますか?double/float型の精度をPythonで

x=0.123456789123456789 

print x # output 0.123456789123 

アップデート1、

奇妙な出力進、

x=0.123456789123456789 
y=decimal.Decimal(x) 
print x," and ", y # output 0.123456789123 and 0.1234567891234567837965840908509562723338603973388671875 

に関して、 林

+3

「Decimal」ライブラリを使用してください: https://docs.python.org/2/library/decimal.html –

+1

この情報は役に立ちました:http://stackoverflow.com/questions/8885663/how-to -format-a-floating-number-to-python –

+2

表示されている*出力*(例: 'print')で精度を増やしたいのですか? – Evert

答えて

2

を使用するときは10進数でそれを行うことができます - あなたは数あなたを持っていたら、精度で遊ぶことができる

import decimal 
initial_x='0.123456789123456789' 
x=decimal.Decimal(initial_x) 
+0

ありがとうございました。私は 'prec'を設定する必要がある場合、ドミトリーロ、投票し、疑問に思っていますか? –

+3

浮動小数点数を 'Decimal'コンストラクタに渡すことは、開始する前に一束の精度を放棄していることを意味します。文字列リテラルを使用する必要があります。 – user2357112

+1

decimal.getcontext()のようにすることができます。prec = 20 - 例を見てください。http://learnpythontutorial.blogspot.com/2015/06/python-decimal-module-python-numbers.html – dmitryro