【VB6.0 Tips】CDec という魔法のおまじない(2)
計算結果が不安定になるよい例ですね。
浮動小数点の特性を知るにはこういうのがよいかな?
と思います。
これを実行すると,
結果が「3」と出る場合と「2」と出る場合とが混在してきます。
IDE上でやってみたり,
EXEにコンパイルしてやってみたりと実行回数を重ねればてんでたいへんなことになります。
まぁ,浮動小数は概数なんだよ。
というのは当然として,概数の丸めってこんなに不安定でいいのか?
と思うところではありますが,
メインフレームのXDとかはもっと丸めの評価自体が安定しているのですよね。
基本的には乗算を優先して,除算を後回しにする。というのも効果的ですが。
最終的には固定小数点を使って,尚且つ計算手順を工夫して除算を排除する。
ということになりますね。
Private Sub Command1_Click()
Dim Buff As String
Dim DoubleValue1 As Double
Dim DoubleValue2 As Double
DoubleValue1 = CDbl(2.9)
DoubleValue2 = CDbl(0.1)
Buff = CStr(Int(2.9 + 0.1))
MsgBox Buff
Buff = CStr(Int(DoubleValue1 + 0.1))
MsgBox Buff
Buff = CStr(Int(2.9 + DoubleValue2))
MsgBox Buff
Buff = CStr(Int(DoubleValue1 + DoubleValue2))
MsgBox Buff
End Sub
コメント