何でオーバーフローしましたか。


無邪気  2007-12-07 14:28:24  No: 138316  IP: 192.*.*.*

VB6.0 windows2000


Dim sampling_cnt As Long
If ntohl(para_cnt) * sampling_cnt > Trim(Text4.Text) Then
      省略。。。 
End If
実は
ntohl(para_cnt)=556
sampling_cnt=10512030
私は自分で計算すると、ntohl(para_cnt) * sampling_cnt=5844688680になりますが、何で実行エラー6(オーバーフロー)が出ますか。回避対策を教えていただけませんか。

編集 削除
YuO  2007-12-07 15:29:45  No: 138317  IP: 192.*.*.*

長整数型には21億強までしか表すことができません。
通貨型 (Currency) や10進数型 (Decimal) を使ってください。

というか,型をちゃんと考えてプログラムを組んでください。

編集 削除