0

我最近在查看某人的 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 循环中使用整数,而且肯定是在找到这个之后。)

4

2 回答 2

0

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

于 2013-04-17T03:18:36.197 回答
0

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

于 2013-02-26T21:22:42.030 回答