直接调用bin函数只能转换整数,小数的模块添加到了里面。
def dec_bin(population,len_str):
flo_po=population-int(population)
n=0
bins_i=bin(int(population))
bins_d = str()
while n<(len_str-len(bins_i)):
flo_po *= 2
print(flo_po)
bins_d+=(str(1 if flo_po>=1. else 0))
flo_po -= int(flo_po)
n+=1
if abs(flo_po)<1e-5:
break
return bins_i,bins_d
下一步就是解决这个二进制基因的模块还有突变了。
由于float类型的误差问题,所以加入0.000001来测试模块功能。