web-dev-qa-db-ja.com

Pythonの小数点以下のフロートにゼロを追加します

ファイルからデータを読み込み、変更して別のファイルに書き込みます。新しいファイルは別のプログラムによって読み取られるため、正確なフォーマットを引き継ぐことが重要です。

たとえば、入力ファイルの数字の1つは次のとおりです。

1.000000

私のスクリプトは列にいくつかの数学を適用し、返す必要があります

2.000000

しかし、現在返されているのは

2.0

たとえばmy_float = 2.0、 なので my_float = 2.00000ファイルに?

22
user2015601

小数点以下6桁にフォーマットします。

_format(value, '.6f')
_

デモ:

_>>> format(2.0, '.6f')
'2.000000'
_

format() function は、指定された formatting instructions に続く値を文字列に変換します。

50
Martijn Pieters

Format()コマンドを使用した答えは上記にありますが、正確な値を表す必要があるfloatを使用している場合は、Decimal標準ライブラリオブジェクトを調べてください。コンテキストクラスで精度と丸めを設定できますが、デフォルトでは、配置するゼロの数が保持されます。

>>> import decimal
>>> x = decimal.Decimal('2.0000')
>>> x
Decimal('2.0000')
>>> print x
2.0000
>>> print "{0} is a great number.".format(x)
2.0000 is a great number.
1
chason

私はn個の方法を試しましたが、私が望んでいた方法で機能するものはありませんでした。

foo = 56
print (format(foo, '.1f'))
print (format(foo, '.2f'))
print (format(foo, '.3f'))
print (format(foo, '.5f'))

output:

56.0 
56.00
56.000
56.00000

つまり、formatの2番目の引数は、小数点以下の桁を取得する必要があります。 formatは文字列を返すことに注意してください。

1
Iqra.