私は最近のPython 3.5でこれに走った:int()は浮動小数点数では機能しませんか?
>>> flt = '3.14'
>>> integer = '5'
>>> float(integer)
5.0
>>> float(flt)
3.14
>>> int(integer)
5
>>> int(flt)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
int(flt)
ValueError: invalid literal for int() with base 10: '3.14'
これはなぜでしょうか?それは3
を返すように思えます。私は何か間違っているのですか?これは正当な理由のために起こりますか?
重要ポイントを:もしあなたは 'float(flt)'の結果を代入しません。 'flt = float(flt)'とすると、変換された値は破棄されます。その場で引数を変更することはありません(Pythonには、これを可能にするC++のパス参照に相当する概念はないので) 'int(flt)'は 'float'ではなく元の' str'で動作しています。基本的に、 'int()'は 'float'でうまく動作しますが、あなたは' float'を与えませんでした。 – ShadowRanger