■ オーバーフローエラー
じゃき
2007/12/26(水) 09:39:15
Private Sub Command1_Click()
Dim x As Double
Dim z As Double
x = 2147520000#
z = x \ 300
End Sub
型の許容範囲なのに、
z = x \ 300
でエラーが発生します。
なぜですか?
また、回避策を教えてください。
じゃき
2007/12/26(水) 09:43:55
z = x mod 300 とした時も同様です。
YuO
[E-Mail]
2007/12/26(水) 10:06:24
ヘルプをちゃんと読みましょう。
VS6.0 MSDNライブラリより
> \ 演算子
(略)
> 除算を実行する前に、数式はバイト型 (Byte)、整数型 (Integer)、または長整数型 (Long) の式に丸められます。
2147520000は上記の最大の型であるLong型の範囲外ですから,当然エラーになります。
じゃき
2007/12/26(水) 10:55:28
回避策はないのでしょうか?
ガッ
2007/12/26(水) 11:24:25 <初心者> 
何を解決するつもりですか?
まずはそれから書いてください.
ジャキ
2007/12/26(水) 12:45:01
エラーを回避する方法で、計算したいです。
大吉末吉
2007/12/26(水) 14:51:03 <中級者> 
> エラーを回避する方法
「回避する方法」と言うのが、
『「\演算子」や「Mod演算子」を使った方法』なら、無理なのでは・・・
「\演算子」や「Mod演算子」の使用はあきらめて、
自前で(エラーにならないような)商・剰余の計算プログラムを作るとかしないと・・・
例えば、こんな関数を用意するとか・・・
--------------------------------------------------------------
Function Amari(ByVal a As Variant, ByVal b As Variant) As Variant
Dim c As Variant
Dim c2 As Variant
Dim b2 As Variant
c = CDec(a)
b2 = CCur(b)
c2 = Fix(c / b2)
Amari = c - c2 * b2
End Function
------------------------------------------------------------------
じゃき
2007/12/27(木) 09:05:37
[[解決]]
ありがとう
毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!
