0
decimal.InvalidOperation:[]的Python:關於 「分裂不可能的」 錯誤
上述錯誤想出了在下面的代碼的第15行(其與while語句的行):
from decimal import *
accuracy = 60
getcontext().prec = accuracy
def function():
for element in range(1, 50):
var_a = Decimal(1)/Decimal(element)
count = 1
if round(var_a, accuracy - 10) == var_a:
print((element, 0))
continue
while (var_a * (10**count)) - ((var_a * (10**count)) % 1) != int:
count += 1
print((element, count))
function()
我正在嘗試編寫代碼以查明給定範圍的分數的循環週期有多長(例如,1/6是0.16666,並且有1位數的循環週期,而1/11是0.090909090909 ...並且有2位數的復發週期)。
我真的不知道錯誤意味着什麼或者我能做些什麼。
感謝您的幫助。
編輯:爲BrenBarn,
文件 「C:/用戶/路易·麥康奈爾/ PycharmProjects /總理的東西/互惠cycles.py」,第15行,在功能上
while (var_a * (10**count)) - ((var_a * (10**count)) % 1) != int:
decimal.InvalidOperation: [類 'decimal.DivisionImpossible']
請粘貼完整的錯誤信息。 – BrenBarn
您無法將數字與「int」進行比較 - 這是一種內置函數。即使它運行,你也不會得到你期望的結果。您需要使用其他方法來檢查數字是否爲整數。 – Tim
你爲什麼要做'%1'?你期望做什麼? – user2357112