我最近在浏览某人的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循环中使用整数,并且肯定在找到它之后。)
答案 0 :(得分:0)
这绝对与浮点精度有关。 IDL中推荐的不是创建显式浮点循环,而是使用整数循环,其中在主体中浮点值是从中派生的。
答案 1 :(得分:0)
这可能是IDL 8.2中的一个错误 - 当我在8.2.1版本中运行命令时,我会得到与您相同的行为。当我在版本8.0的另一台计算机上运行它时,我得到了预期的行为,即每个命令提供相同的输出。内置的IDL帮助肯定表明它们都应该提供相同的输出。