2017-10-15 65 views
0

我的问题是关于为什么我得到这个错误,如果我已经定义所有变量为Float64。应该没有问题。朱莉娅 - 方法错误:没有方法匹配少(:: Float64,:: Tuple {Int64,Int64})

这里是代码和消息,我得到

pr = Array{Float64}(1001) 
succ = Array{Float64}(1001) 

pr1 = Float64 
pr2 = Float64 
pr3 = Float64 
pr4 = Float64 
pr5 = Float64 

succ1 = Float64 
succ2 = Float64 
succ3 = Float64 
succ4 = Float64 
succ5 = Float64 

pr1 = 100,0 
pr2 = 80,0 
pr3 = 50,0 
pr4 = 30,0 
pr5 = 0,0 

succ1 = 0,5 
succ2 = 0,6 
succ3 = 0,85 
succ4 = 0,95 
succ5 = 1 

x = Float64 

for x = 1:1:1001 
pr[x]= (x-1)/10 

if pr[x] == pr5 
    succ[x] = succ5 
elseif pr[x] < pr4 
    succ[x] = succ4 + (succ5 - succ4) * (pr5 - pr[x])/(pr4-pr5) 
elseif pr[x] < pr3 
    succ[x] = succ3 + (succ4 - succ3) * (pr4 - pr[x])/(pr3-pr4) 
elseif pr[x] < pr2 
    succ[x] = succ2 + (succ3 - succ2) * (pr3 - pr[x])/(pr2-pr3) 
elseif pr[x] < pr1 
    succ[x] = succ1 + (succ2 - succ1) * (pr2 - pr[x])/(pr1-pr2) 
elseif pr[x] == pr1 
    succ[x] = succ1 

end 

println(succ[x]) 

end 

它与整数和浮点类型可能这样做,但我看不出我所定义的一切,Float64

回答

5

不要这样做:pr1 = Float64。您可能认为这将pr1定义为Float64类型,但实际上将pr1定义为类型名称Float64的别名。只要做pr1 = 100.0和朱莉娅会知道它是一个Float64。如果你不改变它,你可能想要宣布那个作业const,但是,const pr1 = 100

此外,你不能使用,作为朱莉娅的小数分隔符。 pr1 = 100,0将值pr1设置为Tuple (100,0)