タイトル : 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」に変換することで思い通りの処理ができるようになりました。 例外処理をキャッチすることばかりにとらわれていたのでデータ型を変更することを 思いつきませんでした(^^; 丁寧な返信ありがとうございました。 |