計算時のオーバーフローについて

解決


  2004-09-24 11:23:35  No: 116474

変数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としてやると、計算できます。

説明がザツで申し訳ありませんが、よろしくお願いします。


あわまる  2004-09-24 11:25:25  No: 116475


ペンネームが  ”あ”  になっていますが、”あわまる”です。
すいません。


あわまる  2004-09-24 11:49:23  No: 116476

Nx Ny Mx My をIntegerで定義していました。
Longに変更してやると、計算できるようになりました。

今までNxやNyなど、それぞれの値がIntegerの範囲内ならいいと思っていました。
これらを使って計算するとき、Integerの範囲外ならダメだったんですね。

勉強になりました。

お騒がせして、すいませんでした。


あわまる  2004-09-24 11:50:02  No: 116477

解決を選択するの忘れました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加