2016-07-02 7 views
1

こんにちは、私は一般的にプログラミングには慣れていないので、チュートリアルを練習して、型変換のセクションに来て、さまざまなシナリオを試していました。私は入力機能を使用する際に問題があるようなpython shell 3.5.2混乱型変換

int (input("Enter a number")) 

私は整数を入力したとき、それは結構ですが、私はfloatを入力した場合、私は同じロジックをしようとした場合、それはエラー

Traceback (most recent call last): 
    File "<pyshell#43>", line 1, in <module> 
    int(input("Enter a number:")) 
ValueError: invalid literal for int() with base 10: '1.2' 

を返します。 intをfloatで置き換え、整数を入力すると、シェルは浮動小数点を返します。私はWindows 7マシンでPython IDLE 3.5を使用しています。これが理にかなってほしい。ありがとう

答えて

0

浮動小数点数を表す文字列をintに直接変換することはできません。これは、ユーザーが浮動小数点数を入力するときに、「静かに」最も近い整数に変換されるべきではないため、意味があります。逆の場合、整数を示す文字列をfloatに変換することは問題ありません。すべての整数(が非常にの場合を除きます)は、同様に浮動小数点数としてもよく表現できます。

あなたは、しかし、floatに文字列を変換し、変換することができるfloatintへ:理にかなっている

>>> int(float(input("Enter a number: "))) 
Enter a number: 1.2 
1 
+0

[OK]をクリックします。私の心を安心してくれてありがとう。私はプログラムに問題があると思った。 Lol –

+0

@mcmjrtyうれしいわよ。私はその質問を理解しているかどうか確信が持てませんでした。 –