我的某段代码如下:Dim m_ScaleToHight(1 To 10) As Double
For i = 1 To 10 Step 0.2
m_ScaleToHight(i) = m_MinorScaleToHight(i, j)
Debug.Print "m_ScaleToHight(" & i & ") = " & m_ScaleToHight(i)
Next打印出来的结果是:
m_ScaleToHight(1) = 1
m_ScaleToHight(1.2) = 1.2
m_ScaleToHight(1.4) = 1.4
m_ScaleToHight(1.6) = 1.6
m_ScaleToHight(1.8) = 1.8
m_ScaleToHight(2) = 2
m_ScaleToHight(2.2) = 2.2
m_ScaleToHight(2.4) = 2.4
m_ScaleToHight(2.6) = 2.6 可是再当我用MsgBox查看数组值时,却发现有的数组元素值不正确了,例如
m_ScaleToHight(1) = 1.4
等等!请问这是什么原因?有办法解决这个小数数组值错乱的问题吗?
For i = 1 To 10 Step 0.2
m_ScaleToHight(i) = m_MinorScaleToHight(i, j)
Debug.Print "m_ScaleToHight(" & i & ") = " & m_ScaleToHight(i)
Next打印出来的结果是:
m_ScaleToHight(1) = 1
m_ScaleToHight(1.2) = 1.2
m_ScaleToHight(1.4) = 1.4
m_ScaleToHight(1.6) = 1.6
m_ScaleToHight(1.8) = 1.8
m_ScaleToHight(2) = 2
m_ScaleToHight(2.2) = 2.2
m_ScaleToHight(2.4) = 2.4
m_ScaleToHight(2.6) = 2.6 可是再当我用MsgBox查看数组值时,却发现有的数组元素值不正确了,例如
m_ScaleToHight(1) = 1.4
等等!请问这是什么原因?有办法解决这个小数数组值错乱的问题吗?
m_ScaleToHight(i) = m_MinorScaleToHight(i, j)
应为:
m_ScaleToHight(i) = i
For i = 1 To 10 Step 0.2
m_ScaleToHight(i) = i
Debug.Print "m_ScaleToHight(" & i & ") = " & m_ScaleToHight(i)
Next
中使用
MsgBox m_ScaleToHight(1)
很正常,可是一旦结束循环,在循环体外部使用
MsgBox m_ScaleToHight(1)
数组值就错乱了
注意这句:
m_ScaleToHight(i) = m_MinorScaleToHight(i, j)
Debug.Print "m_ScaleToHight(" & i & ") = " & m_ScaleToHight(i)
m_ScaleToHight(1)、m_ScaleToHight(1.2)、m_ScaleToHight(1.4)其实都是m_ScaleToHight(1)
由于 m_ScaleToHight(i) 被赋值后立即被打印,所以产生了带迷惑性的结果~~