除算結果がおかしい

解決


みよ  2009-11-25 13:15:51  No: 102087  IP: 192.*.*.*

下記のようなプログラムを作成すると結果が2.7272727・・・
となります。
実際は0.0272727・・・のはずです。どうすれば正常に計算されるのでしょうか?
Private Sub Form_Load()
    Dim i As Double
    i = 6 / 220
    MsgBox i
End Sub
PC環境:WindowsXP Pro SP2、VB6.0SP6

編集 削除
花ちゃん  2009-11-25 14:26:24  No: 102088  IP: 192.*.*.*

>    Dim i As Double
>    i = 6 / 220
>    MsgBox i
桁あふれをおこしているので、
対処方法
その1.Dim i As Currency 型で宣言する
その2.表示桁数を制限する  MsgBox Format$(i, "###0.############0")

編集 削除
花ちゃん  2009-11-25 14:30:16  No: 102089  IP: 192.*.*.*

その2.表示桁数を制限する  MsgBox Format$(i, "###0.############")  に修正願います。(桁数は許される範囲でお好きに)

編集 削除
特攻隊長まるるう  2009-11-25 14:31:52  No: 102090  IP: 192.*.*.*

>桁あふれ
というより指数表現という方がいいのでは?
一応、計算結果はおかしくないし、浮動小数点上で正常に
計算されていると認識していますが。

> 2.72727272727273E-02
E-02が10の-2乗となり、100で割る意味になります。

編集 削除
みよ  2009-11-25 16:29:42  No: 102091  IP: 192.*.*.*

MsgBox Format$(i, "###0.###") 
で改善されました。参考になり大変感謝しています。
有難うございました。

編集 削除