変数Zのデータが2つあります。
この2つのデータの一部分の平均を計算したいと思っています。
データ①は44696個,データ②は29896個あります。
オーバーフローする部分のソースを載せます。
Dim z1(100000) As Single,z2(100000) As Single
Nx = Text1: Ny = Text2 (Nx=296,Ny=151
Mx = Text4: My = Text5 Mx=296,My=101 となっています。)
'①と②の平均値の算出 結果をデータ②と入れ替える
For i = 1 To Nx
z2(i) = (z1((Nx * (Ny - 1)) + i) + z2(i)) / 2
Next i
この平均を計算するときに、i=1で z1((Nx * (Ny - 1)) + i)がオーバーフローとなります。
適当にNy=100としてやると、計算できます。
説明がザツで申し訳ありませんが、よろしくお願いします。
↑
ペンネームが ”あ” になっていますが、”あわまる”です。
すいません。
Nx Ny Mx My をIntegerで定義していました。
Longに変更してやると、計算できるようになりました。
今までNxやNyなど、それぞれの値がIntegerの範囲内ならいいと思っていました。
これらを使って計算するとき、Integerの範囲外ならダメだったんですね。
勉強になりました。
お騒がせして、すいませんでした。
解決を選択するの忘れました。
ツイート | ![]() |