decimal.InvalidOperation:[]
上面的错误出现在以下代码的第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:/ Users / Louie McConnell / PycharmProjects / Prime Stuff / reciprocal cycles.py”,第15行,函数
while (var_a * (10**count)) - ((var_a * (10**count)) % 1) != int:
decimal.InvalidOperation:[class'minit.DivisionImpossible']
答案 0 :(得分:1)
使用:
def is_integral(d):
return d.to_integral() == d
in
while not is_integral(var_a * (10**count)) - ((var_a * (10**count)) % 1):