private sub command1_click()
 dim a()
 a= array(7,8,9,10)
 for k = 0 to 2 step 0.5
 s = s+a(k)
 next k
 print s
 end sub
执行结果是40,我跟了一下,觉得很奇怪,a(0)=a(0.5)=7 a(1)=8 a(1.5)=a(2)=9
后来我把范围加大了试验还是没找到这个逢0.5时取值的规律,哪位知道?
是不是和编译器对符点数的取舍有关啊?

解决方案 »

  1.   

    private sub command1_click()
     dim a()
     a= array(7,8,9,10)
     for k = 0 to 2*10 step 0.5*10
     s = s+a(k/10)
     next k
     print s
     end sub
    再试试
      

  2.   

    private sub command1_click()
     dim a()
     a= array(7,8,9,10)
     for k = 0 to 2 step 0.5
     s = s+a(k)
     debug.print a(k)    '在调试框中打印一下,查看其值的变化
     next k
     print s
     end sub
      

  3.   

    应该是四舍五入的问题吧0.5  ->0
    1.5  ->2查一下"四舍五入" 是什么“遇双留双”的原因。