• ベストアンサー

小数点第2位の数値の計算

下記のような処理があるとします。 Dim 変数1 As 宣言 Dim 変数2 As 宣言 Dim 変数3 As 宣言 Dim 変数4 As 宣言 変数1 = 0 変数2 = 0 変数3 = 0 変数4 = 0 変数1 = テキストボックス1.Text 変数2 = ラベル2.Caption 変数3 = ラベル3.Caption 変数4 = (変数2 + 変数3) - 変数1 ラベル4.Caption = 変数4 変数1~3には、小数点第2位までの 数値が入る事があるのですが、 例) 変数1 = 3.0 変数2 = 4.75 変数3 = 7.75 の場合、変数4 = 0 と計算される。 その場合、変数4の計算結果が 正しく出力されません。 宣言はDoubleを使うと計算結果は 16進数表示になり、Singleを使うと0になります。 正しい計算結果を出すには どのようにすれば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.1

通貨型ってVBにありましたっけ。 AccessVBAだとあるのですが。最近VB書いていないので覚えていないです。 Dim 変数 As Currency 確か小数第4桁までの固定で丸めが起こらないはずなのですが。 どうでしょうか?

その他の回答 (1)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

ひとまず、小数以下桁数が決まっているような計算では、Currency型を使うのが基本です。 Doubleで16進数表示されたり、Singleで0と表示されるのも、ちょっとこのソースだけでは予測不可能です。 しかも4.75 + 7.75 - 3は0じゃないでしょう。 とりあえずCurrencyを使ってみてから、計算間違いがないか確認してください。

su-ta
質問者

お礼

>回答者の方へ ありがとうございました。 解決出来ました。 質問に一部不備があった事をお詫びします。