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


無邪気  2007-12-07 23:28:24  No: 138316

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-08 00:29:45  No: 138317

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

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


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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