- ベストアンサー
エクセルVBA データ型 SingleとDouble
SingleとDoubleともに、整数部分の範囲についてはどのように 考えればよいのでしょうか?例えば、小数点以下4桁までを正確 に計算できれば良く、変数の値が 54321.**** となる場合は Singleで良いのでしょうか? SingleとDoubleで対応できる、整数部分の範囲を教えてください。 お手数ですが、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
有効桁数で考える必要があります。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桁目は桁落ちします。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 理屈では、Single ですが、私は、面倒なことを考えずに、Excelの場合は、セルの数字は、全部、Double型ですから、それに合わせて、Double 型にしてしまいますね。考えていたらキリがありませんからね。 もちろん、内容にもよります。最終出力で、小数点第4位までなら、1000倍して計算して、1000で割ればよいです。 小数のままで演算(足し算、掛け算を含めます)するときは、#3 さんの書かれている、Currency 型です。
お礼
ご回答ありがとうございます。
- ASIMOV
- ベストアンサー率41% (982/2351)
Singleの場合の有効数字は7桁くらいです >54321.**** だと、9桁有りますので、Doubleでないと、精度が出ないと思われます >SingleとDoubleで対応できる、整数部分の範囲 有効数字(整数部と小数部を合わせた全桁数)が Single=7桁弱 Double=16桁弱
お礼
ご回答ありがとうございます。
- nicotinism
- ベストアンサー率70% (1019/1452)
小数点以下下4桁まで精度が必要でしたら通貨型を使いましょう。 イミディエイトウィンドウで ?1.2*10-12 ?1.2#*10-12 ?1.2@*10-12 の結果を確かめてください 詳しくはこちら↓ 第4回 演算誤差の正体 http://pc.nikkeibp.co.jp/pc21/special/gosa/eg4.shtml
お礼
ご回答ありがとうございます。
- king_joe1006
- ベストアンサー率37% (70/189)
single 単精度 (-999999. ~ 999999.) double 倍精度 (-9999999999999999. ~ 9999999999999999.) 簡単に言えば singleの場合は小数点以下6桁まで doubleの場合は小数点以下14桁まで >小数点以下4桁までを正確 との事ですので、singleで十分かと思われます。
お礼
ご回答ありがとうございます。
お礼
ご回答ありがとうございます。