42

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

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

1.000000

私のスクリプトは列にいくつかの数学を適用し、

2.000000

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

2.0

たとえばmy_float = 2.0my_float = 2.00000ファイルに関してフロートを作成するにはどうすればよいですか?

4

5 に答える 5

80

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

format(value, '.6f')

デモ:

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

このformat()関数は、指定されたフォーマット手順に従って値を文字列に変換します。

于 2013-03-25T15:50:03.347 に答える
7

Python 3.6からは、f文字列のフォーマットを行うこともできます。これは次のようになります。

f"{value:.6f}"

例:

> print(f"{2.0:.6f}")
'2.000000'
于 2020-09-16T02:08:57.153 に答える
5

私は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

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

于 2018-08-30T09:17:50.273 に答える
2

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.
于 2013-03-25T17:35:38.797 に答える
2

f文字列で変数を使用する際に問題が発生しました。他のすべてが失敗したときは、マニュアルを読んでください:)

「通常の文字列リテラルと同じ構文を共有することの結果は、置換フィールドの文字が、外側のフォーマットされた文字列リテラルで使用される引用符と競合してはならないということです。」

https://docs.python.org/3/reference/lexical_analysis.html#f-strings

適例:

my_number = 90000
zeros = '.2f'

my_string = f"{my_number:,{zeros}}"

print (my_string)
90,000.00

my_string = f'{my_number:、{zeros}}'

一重引用符のため、機能しません。

f文字列とf文字列で使用される文字列変数を含む引用符は異なる必要があります

文字列変数に一重引用符を使用する場合は、fモジュールに二重引用符を使用します。その逆も同様です。

于 2021-05-06T06:59:36.130 に答える