Я начинающий на питоне и написал код, чтобы проверить, является ли число кубом целого числа. Кажется, что код работает нормально для некоторых значений, однако для некоторых (даже целых кубов) он печатает корень куба как (x-0.000000004
, x
- это кубический корень). Например, он даст 3.9999999996
в качестве кубического корня 64, но будет печатать 2,5 для 8,125. Есть предположения?Проверка, является ли число целым кубом
n=int(input("Please enter the number: "))
print (n)
x=n**(1/3)
print (x)
if x==int(x):
print ('%s is a whole cube'%(n))
else:
print ('%s is not a whole cube'%(n))
Игнорировать промежуточные операторы печати, они предназначены только для линейной отладки.
Настоятельно рекомендуется прочитать [Ошибка округления по Python с номерами с плавающей запятой] (http://stackoverflow.com/questions/5997027/python-rounding-error-with-float-numbers) –
Это один из наиболее часто задаваемых вопросов. Пожалуйста, прочитайте несколько тем о точности с плавающей запятой. Например, упомянутый Бхаргав Рао. – tamasgal
Извините за повторение ребят. будет проверять документы python, спасибо. – pythonnewbie