IDL循环内外结果不同

plinear(k,w)是自己写的一个函数,就是一些数学算式,有一个输出值。确定参数k,w后代入得输出值z。

k=1.94d0
wr=1.39929d0
w=dcomplex(wr,0d0)
z=plinear(k,w)
print,z

但是把这个函数放在一个循环里,同样的参数算出的输出值和单独算出来的不一样!

k=1.94d0
for wr=1.39928d0,1.39930d0,1d-5 do begin
  w=dcomplex(wr,0.d0)
  z=plinear(k,w)
  print,k,wr,z,format='(f5.2,d16.11,e14.6)'
endfor

我非常迷惑,精度应该也是相同的,请问是哪里的问题呢?是函数plinear有问题导致的吗?