2017-02-19 12 views
0

除算の問題をパラメータとして入力しようとしていますが、答えが<であるときに常に0になっています。なぜこれが起こっているのか分かりますが、これを修正すると、小数点の答えが得られます。入力パラメータとしての除算0

def division(x): print x "x" は1/2で、コードのプリント」0.5"

私はJESバージョン5.020を使用しています。どんな指導も大歓迎です!

+0

を 'DEF divison(のロジックを追加)' – Juggernaut

+0

私は何その意味を知りません。私が読むことができる記事はありますか? –

答えて

0

は、float()関数を使用します。それがないすべての印刷が入力された場合

5/2 = 2
フロート(5)/フロート(2)=全ての2.5

+0

私は入力が既に分割されていると思うので、これをfloat()関数で使うことはできません。 –

+0

関数に置かれている数値にfloatを使うようにしてください。ex x = float(x)def division(x):print(x) – Phonzi

+0

基本的に数値を浮動小数点に変換してから関数に入れます。 – Phonzi

0

まず、分割と呼ばれる機能を備えても意味がありません。

実際の問題が発生しました。あなたはPython 2を使用しています。Python 2では、整数の除算は常に整数です。したがって、1/3(0.33に等しくなければならない)は、ちょうど0になります。

解決策は、少なくとも1つの数値を浮動小数点に変換することです。これは、次の方法で行うことができます

  1. float(1)/3
  2. 1.0/3

と数字があなたの関数に渡される前に、はい、あなたの現在の設定では、この分裂が起こります。あなたの機能は完全に機能するので、変更する必要がある入力です。

編集:

あなたが入力を変更し、将来モジュールを使用して整数の浮動小数点除算をサポートする必要がないことができます。これは、2

のpythonへのpythonのいくつかの3つの機能をもたらし、あなたのコードの先頭に次の行を追加します。

from __future__ import division 
+0

私は可能なことをやろうとしていますか?除算が行われる前に入力を浮動小数点数に変換することはできません。私は、ユーザーにパラメータ "1/2"を指定し、その関数が0ではなく.5であることを知るようにします。 –

+0

それは可能ですが、なぜそれをしたいのか分かりません。数値入力は数値であり、数値の小数表現ではありません。少なくともそれはプログラミング言語が想定しているものです。ユーザーが言語でサポートされていない表現で数字を入力できるようにするには、文字列として入力してから、好きなように入力を処理する必要があります。しかし、あなたのケースでは幸運なことに、小さな変更はあなたが望む結果を得ることができます。私の編集された答えを見てください。 – shish023

+0

ええ、 'from __future__ import division'を試しましたが、ロードされず、無効な構文エラーが返されます。私は本当にここからどこに行くのか分からない。 –

関連する問題