tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: VB2005での0除算例外について
投稿日: 2007/12/11(Tue) 18:14
投稿者たると
魔界の仮面弁士さん、こんばんは。返信ありがとうございます。

> ちなみに、これらの特殊な Double 値というのは、VB6 でも内部的には
> 利用可能でしたが、VB6 上では(0 除算等を行っても)生成できないため、
> ヘルプ等には、特に記載されていなかったようです。
>
> なお、VB6 で「無限大」や「NaN」データを構築する方法は、この辺りを参照。
> 蛇足までに。
> http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?no=10740&reno=10733&oya=10731&mode=msgview&page=30
>
ありがとうございます。大変参考になります。
VB6.0では例外処理は
    Try
    'ソースコード
    Catch ex As Exception
        'エラー時の処理
    End Try

の形で済ましてしまうことが多く、あまり意識したことがなかったので大変参考になりました。

> > c = CInt(a / b)
> > とすることで、例外をキャッチすることが可能なのですが、
> ただしそれは、ゼロ除算の例外ではありませんよね。

除算を実行する前に、整数の数式は必ず Double 型に拡大変換されているので
オバーフローの例外になるのですね。
>
> > このa,bに小数点付きの値が入る場合
> それならば、「Decimal型」を利用してみては如何でしょうか?
> 求める演算精度にもよりますけれども。
>
データ型を「Decimal」に変換することで思い通りの処理ができるようになりました。
例外処理をキャッチすることばかりにとらわれていたのでデータ型を変更することを
思いつきませんでした(^^;
丁寧な返信ありがとうございました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。