Float 値の整数の決定
このコード スニペットでは、以下の整数である最大の立方根を求めています。 12,000:
processing = True n = 12000 while processing: n -= 1 if n ** (1/3) == #checks to see if this has decimals or not
浮動小数点数かどうかを確認するにはが整数の場合は、 float.is_integer() メソッドを利用できます。
>>> (1.0).is_integer() True >>> (1.555).is_integer() False
Python 2 では、整数オペランドの下限除算により 1/3 の結果は 0 になることに注意してください。また、浮動小数点演算は可能です。不正確であること。これを考慮してループを調整すると:
for n in range(12000, -1, -1): if (n ** (1.0/3)).is_integer(): print n
期待した結果が得られます:
27 8 1 0
ただし、浮動小数点演算の不正確さにより、3 の 3 乗 ( 10648を含む)は省略されています。これに対処するには、代わりに整数に近い数値をチェックします:
import math for n in range(12000, -1, -1): if math.isclose((n ** (1.0/3)), round(n ** (1.0/3))): print n
このバリエーションの出力:
10648 27 8 1 0
Python 3.5 以降では、数学を利用できます。 isclose() 関数は、浮動小数点値がカスタマイズ可能なマージン内にあるかどうかを確認します。
以上がPython で Float が整数を表すかどうかを確認するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。