• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで計算した結果がデータ型により相違してしまいます。VBAに詳しい)

VBAで計算した結果のデータ型相違の理由とは?

このQ&Aのポイント
  • VBAで計算した結果がデータ型により相違してしまいます。VBAに詳しい方、理由を教えてください。よろしくお願いします。
  • Dim税率AsSingle Dim売上AsDouble 単価=Range("b5").Value:個数=Range("d5").value:税率=Range("f5").Value 売上=(1+税率)*単価*個数 (1)単価=30000、個数=15、税率=0.05と入力すると売上の数値=472500.000335276となります。 (2)売上のデータ型をsingleにした場合は、売上=472500となります。 (3)売上のデータ型Single、税率のデータ型をDoubleとした場合も売上=472500となります。 (1)の結果の小数点以下の数値の意味がわかりません。よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

計算する値がDouble型を含む場合、その項と計算する項はDouble型でなくとも、Double型に自動キャストされて計算が行われます。 Double型での計算結果は誤差が付き物です。 「Double」と「誤差」で履歴を検索 http://okwave.jp/search?word=Double+%E8%AA%A4%E5%B7%AE&boolean=and&target=&ques_stat=&c_select=true&date=&sort=score&c=257 あまり大きな桁が異なる計算を行うと誤差が出るかも知れませんが、 ※全ての変数 As Currency とすると、ある程度の対応が出来ます。

pochi-ta
質問者

お礼

お忙しいなか、ご丁寧な回答ありがとうございました。 アドバイスまでいただき助かりました。

関連するQ&A