- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在使用for循环时,序号习惯上是整型,但是存在着溢出的危险:
for i=0,10 do begin
print,i*32767
endfor
输出:
0
32767
-2
32765
-4
32763
-6
32761
-8
32759
-10
发现这个问题后,我就将序号改为浮点型,但是又发现了以下问题:
for i=0.0,1.0,0.1 do begin
print,double(i)
endfor
0.00000000
0.10000000
0.20000000
0.30000001
0.40000001
0.50000000
0.60000002
0.70000005
0.80000007
0.90000010
原本我要计算到i=1.0,可是却没有算到那里,循环提前停了,
因为浮点的小数不确定,据说是所有语言处理浮点数据都存在的问题,
所以,最终值我会再加大一些,才能保证循环的完整
|
|