2016-10-08 16 views
1

私はPythonに実際の値のFORTRAN出力を複製させようとしています。私のFORTRANは "31380"と実際の値を表示します。私はPythonで同じものを複製しようとしています - 小数点以下の桁はありませんが、小数点(ピリオド)を実際に印刷します。現在のコードは浮動小数点数を小数点なしで書く

htgm=31380. 
print '{:6.0f}'.format(htgm) 

で、「31380」となります。私は間違って何をしていますか?

+2

フォーマット文字列に '.'を追加するのはどうですか? '' {:6.0f}。 ''フォーマット(htgm) ' – falsetru

答えて

1

htgmの型を保持するPythonはfloatとすることはできません。あなたはstrとしてそれを作るとOKしている場合は、あなたが行うことがあります。

htgm=31380. 
'{0:.0f}.'.format(htgm) 
# returns: '31380.' 

# OR, even simply 
'{}.'.format(int(htgm)) 
2

をPythonの形式言語はフォーマット文字列中に「#」を使用して小数点を強制的に浮動小数点数のための「代替」形式が含まれています

>>> htgm=31380. 
>>> format(htgm, '#.0f') 
'31380.' 

私はあなたが探していると思います。
私は#gはあなたが欲しかったものだろうと思ったが、何らかの理由でPythonは背面に0を追加します。

>>> htgm=31380. 
>>> format(htgm, 'g') 
'31380' 
>>> format(htgm, '#g') 
'31380.0' 
+0

これはPython 3でのみ利用できますか? –

+0

'#'はPy> 2.6以降に存在していましたが、floatの代替フォームはPy3で追加されたように見えます。 – AChampion

0

あなたが番号を表示する必要がある場合には、使用:

print(str(htgm)[:-1]) 

この表記は剃り落とすます最後の '0'。

関連する問題