動作検証バージョン:Windows 11 Home + Python 3.10.6
Pythonのisinstance関数を使って、何らかのデータがint型かを判定できることをご紹介しました。
データが整数型であるかどうかを判定するのであればisinstance関数でいいのですが、「123.0」のような小数点以下が「0」の小数は、ininstance関数ではFalseになってしまいます。
小数点以下が「0」の場合にも整数と判定したいのであれば、別の方法を考える必要があります。
[スポンサードリンク]
小数を表すfloat型に用意されているis_integerメソッドを使うのが一案です。
float.is_integerの挙動
「isinstance(123.0, int)」はFalseですが、以下のようなfloat.is_integerメソッドを使ったコードならTrueと判定されます。
(123.0).is_integer()
なお、「123.0」をカッコでくくらない以下のようなコードでもTrueと判定されますが、
123.0.is_integer()
小数点としての「.」
メソッドの前の「.」
が紛らわしいので「(123.0).is_integer()」のほうが良さそうに感じます。
掛け算の場合
小数に掛け算をした「isinstance(1.23*100, int)」はFalseですが、以下のコードならTrueが返されます。
(1.23*100).is_integer()
指数表記の場合
指数表記にした以下のようなコードでもTrueと判定されます。
(1.23e2).is_integer()
(1.23e+2).is_integer()
[スポンサードリンク]
Home » Python » Pythonで小数点を含む数値を整数と判定する-float.is_integerメソッド