• ベストアンサー

エクセルVBA データ型 SingleとDouble

SingleとDoubleともに、整数部分の範囲についてはどのように 考えればよいのでしょうか?例えば、小数点以下4桁までを正確 に計算できれば良く、変数の値が 54321.**** となる場合は Singleで良いのでしょうか? SingleとDoubleで対応できる、整数部分の範囲を教えてください。 お手数ですが、よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

有効桁数で考える必要があります。Singleの有効桁数は7桁(内部的には9桁)で、負の値は -3.4028235E+38 ~ -1.401298E-45、正の値は 1.401298E-45 ~ 3.4028235E+38 の範囲の値をとります。 http://msdn2.microsoft.com/ja-jp/library/xay7978z(VS.80).aspx 54321.1234 = 5.43211234E+4 になり、有効桁数は9桁あります。この場合はDoubleでないと小数点以下7,8桁目は桁落ちします。

nonboo
質問者

お礼

ご回答ありがとうございます。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 理屈では、Single ですが、私は、面倒なことを考えずに、Excelの場合は、セルの数字は、全部、Double型ですから、それに合わせて、Double 型にしてしまいますね。考えていたらキリがありませんからね。 もちろん、内容にもよります。最終出力で、小数点第4位までなら、1000倍して計算して、1000で割ればよいです。 小数のままで演算(足し算、掛け算を含めます)するときは、#3 さんの書かれている、Currency 型です。

nonboo
質問者

お礼

ご回答ありがとうございます。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.4

Singleの場合の有効数字は7桁くらいです >54321.**** だと、9桁有りますので、Doubleでないと、精度が出ないと思われます >SingleとDoubleで対応できる、整数部分の範囲 有効数字(整数部と小数部を合わせた全桁数)が Single=7桁弱 Double=16桁弱

nonboo
質問者

お礼

ご回答ありがとうございます。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

小数点以下下4桁まで精度が必要でしたら通貨型を使いましょう。 イミディエイトウィンドウで ?1.2*10-12 ?1.2#*10-12 ?1.2@*10-12 の結果を確かめてください 詳しくはこちら↓ 第4回 演算誤差の正体 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg4.shtml

nonboo
質問者

お礼

ご回答ありがとうございます。

回答No.1

single 単精度 (-999999. ~ 999999.) double 倍精度 (-9999999999999999. ~ 9999999999999999.) 簡単に言えば singleの場合は小数点以下6桁まで doubleの場合は小数点以下14桁まで >小数点以下4桁までを正確 との事ですので、singleで十分かと思われます。

nonboo
質問者

お礼

ご回答ありがとうございます。

関連するQ&A