投稿日 | : 2005/05/22(Sun) 23:07 |
投稿者 | : Starfish |
Eメール | : |
URL | : |
タイトル | : Re^2: |
> > VB6.0では、通貨型同士の除算は、結果は10進型になるとおもいます。
> 『Debug.Print TypeName(10@ / 1@)』は、「Double」を返しませんか?
> 少なくとも当方では、VB6 でも Office 2003 VBA でも Double になりますが……。
>
>
> > (ヘルプのキーワード 「/ (演算子)」)
> それは、下記のトピックの事かと思いましたが…具体的にはどの部分でしょうか。
> hhttp://www.microsoft.com/JAPAN/developer/library/Vbenlr98/vaoprdivide.htm
通貨型同士の除算は、結果は10進型になるという思っていたので、「10 進型 (Decimal)
と他のデータ型を含む除算」にはいると読み違えたようです。どうもすみません。
しかしながら、計算した結果が制度の悪い型になるというのは考えられません。
『Debug.Print TypeName(10@ / 1@)』は、「Double」を返しますが、以下のコードを
実行してみると、c3=c5 とはならず、c3には通貨型の精度で値が表示されます。
不思議ですねぇ。
Private Sub Command1_Click()
Dim c1 As Currency
Dim c2 As Currency
Dim c3 As Currency
Dim d4 As Double
Dim c5 As Currency
Dim x As Currency
Dim i As Long
c1 = 922337203685465.5807@
x = 1.23
For i = 0 To 10
c1 = c1 + 1
c2 = (c1 / x)
c3 = c2 * x
d4 = (c1 / x)
c5 = d4 * x
Debug.Print c1, c3, c5
Next
End Sub