重複の可能性:
Python float から int への変換の問題
def isPerfectCube(x):
temp = x ** (float(1) / 3)
temp = temp ** 3
temp = int(temp)
print (temp == x)
return (temp == x)
数値 x が完全な立方体かどうかを判断するプログラムを作成しようとしています。何らかの理由で、切り捨てではなく、整数全体を切り捨てている数値があります。フロートがどのように機能するかを完全に理解したことがありません。それらが不正確であることはわかっているので、問題はそこから来ていると思います。
例えば:
- 125.0 は、int にキャストすると 124 に切り捨てられます。
- int にキャストすると、64.0 は 63 に切り捨てられます。
どんな助けや説明も大歓迎です。