IDL表示循环不一致

时间:2013-02-12 11:18:58

标签: for-loop idl-programming-language

我最近在浏览某人的IDL代码时遇到了这种明显的不一致:

IDL> for i=0.,1.9,1. do print,i
      0.00000
      1.00000
IDL> for i=0.,1.9,1 do print,i
      0.00000
      1.00000
IDL> for i=0.,1.9 do print,i
      0.00000
      1.00000
      2.00000

任何人都可以解释第三个循环中是否存在行为背后的逻辑。

使用的IDL版本是8.2.0。

(请注意,我自己的代码将坚持在for循环中使用整数,并且肯定在找到它之后。)

2 个答案:

答案 0 :(得分:0)

这绝对与浮点精度有关。 IDL中推荐的不是创建显式浮点循环,而是使用整数循环,其中在主体中浮点值是从中派生的。

答案 1 :(得分:0)

这可能是IDL 8.2中的一个错误 - 当我在8.2.1版本中运行命令时,我会得到与您相同的行为。当我在版本8.0的另一台计算机上运行它时,我得到了预期的行为,即每个命令提供相同的输出。内置的IDL帮助肯定表明它们都应该提供相同的输出。