/平均我有一個結構的數組VB:Calcute意味着UDT陣列
Private Type udtSingle
Dim Count As Long
Dim Value As Single
end Type
Private m(2) As udtSingle
假設數組充滿這樣的:
m(0).Count = 5
m(0).Value = 100
m(1).Value = 1
m(1).Count = 10
你可以看到,我們有5 * 100和1 * 10。
什麼是計算平均值的最佳方法?
for i as integer = 0 to m.upperbound()
cAll += m(i).Count * m(i).Value
iCount+=m(i).Count
next i
dim average as currency
average = cAll/iCount
這將工作,但我真的很多.Count和high.Value,我怕溢出。
我還能做什麼?
如果數組變得非常大,反正我會得到溢出。我不能在for-next-statement中重新計算平均值嗎?我想是的,但我可以想到一個優雅的解決方案。
PS:是的,我知道,代碼是一種僞代碼...
VB.Net不再支持'Type'聲明。現在是「結構」。你使用的是vb.net嗎? – igrimpe
我正在使用VB6。但我認爲答案可以在.NET中,我可以將它翻譯成VB6,除非有人建議使用.NET更強大的功能來保存大量數據。 – tmighty
反正我建議使用LINQ--當然你不能將它翻譯回vb6。另外vb.net does not有問題無論如何,因爲它分配乘法的結果,可以容納相當一些大數字'單') – igrimpe