2012-01-27 7 views
0

小数点以下の数字を印刷するのに問題があります。 私は、pythonを実行し、結果が小数点のある数値でなければならない部門を行うように頼んだら、小数点を表示しません。例えば、私はちょうどこのアルゴリズム をした:小数点以下の数字を印刷

print 'Report card calculation' 
grade1 = input ('Insert the first grade: ') 
grade2 = input ('Insert the second grade: ') 
grade3 = input ('Insrt the third grade: ') 

media = (grade1 + grade2 + grade3)/3 
print 'Your final result is', media 

をしかし、それは、「メディア」、小数点は小数点が付属していない必要があります番号を印刷したとき。どうすれば修正できますか?

+0

あなたの入力?それらは整数ですか? –

答えて

2

最も簡単な変更:代わり33.0除算:

media = (grade1 + grade2 + grade3)/3.0 

これはmediaに割り当てられた値が3つの等級変数がint値を保持する場合でも、浮動小数点であろうことを保証します。あなたのファイルの先頭に

+0

ハム...それを得ました。それは私のために完璧に働いた。タク –

2

、追加:

from __future__ import division 

または2つの整数を分割することは常に整数を生成し、Pythonの2では3.0の代わりに、3を使用します。

1

操作は整数除算として扱われます.3の代わりに3.0を使用してみてください。次に何が起こるかを見てください。

1

Python 2.xで2つの整数を分割すると、結果は整数になります。 Numeric Typesのドキュメントから:

(平方または長整数)の除算の場合、結果は整数です。 1/2は0、(-1)/ 2は-1、1 /( - 2)は-1、(-1)/( - 2)は0になります。数値にかかわらず、いずれかのオペランドが長い整数の場合、結果は長い整数になります。

あなたが望む行動を取得し、いずれかのPython 3 division behaviorを使用するか、またはフロートに分子や分母(あるいはその両方)を1に変更するためにあなたのモジュールの上部にfrom __future__ import divisionを追加するにはどのようなもの

# either of the following would work 
media = float(grade1 + grade2 + grade3)/3 
media = (grade1 + grade2 + grade3)/3.0 
関連する問題