[リストへもどる]
一括表示

投稿時間:2003/08/13(Wed) 10:48
投稿者名:cozi
Eメール:
URL :
タイトル:
データ型Double計算について
はじめまして。VB初心者のcoziです。
是非、教えて頂きたいのですが、
データ型Doubleで計算結果の精度を保てるのは
整数部、小数部、合わせて15桁までと思うのですが...
 例)123.123456789012
整数部が0桁の場合は小数部15桁目は計算結果で桁落ち
してしまうのでしょうか?
 例)0.123456789012345?
   0.12345678901234?
よろしくお願いします。

投稿時間:2003/08/13(Wed) 11:36
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: データ型Double計算について
> 整数部が0桁の場合は小数部15桁目は計算結果で桁落ち
> してしまうのでしょうか?
>  例)0.123456789012345?
>    0.12345678901234?

小学生が宿題を聞いているのではないので、聞く前にその位の計算は
自分でして確かめてみたらどうですか?
Debug.Print 0.123456789012345 + 0.000000000000001

投稿時間:2003/08/13(Wed) 17:32
投稿者名:cozi
Eメール:
URL :
タイトル:
Re^2: データ型Double計算について
回答ありがとうございました。

> Debug.Print 0.123456789012345 + 0.000000000000001

上記で試してみたけど、うまくいきませんでした(^^;
でも解決したのでありがとうございました。

投稿時間:2003/08/13(Wed) 13:11
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: データ型Double計算について
先頭のゼロの桁に付いては、精度桁にはカウントされません。
ですから、『0.123456789012345』という数なら、桁落ちせずに保持されます。

Doubleは、倍精度の『浮動』小数点型です。つまり、小数点位置は動的に変更されます。
もし、最初のゼロまで「15桁」中にカウントするのであれば、例えば
   0.00000000000000000000000000000000000012345
のような数を保持できない事になってしまいますよね。(^^;


ただ、「計算結果」となると、話が変わってくるかも知れません。
加減算か、乗除算か、あるいはその他の演算かによって、最終的な有効桁数は変化するからです。

たとえば、演算の途中で15桁を超えるような事があれば、
最終結果が15桁以内に収まったとしても、桁落ちする可能性はあるでしょう。

投稿時間:2003/08/13(Wed) 17:40
投稿者名:cozi
Eメール:
URL :
タイトル:
Re^2: データ型Double計算について
回答ありがとうございました。

> 先頭のゼロの桁に付いては、精度桁にはカウントされません。
> ですから、『0.123456789012345』という数なら、桁落ちせずに保持されます。

桁落ちせずに保持されること確認できました。
ありがとうございます。

> ただ、「計算結果」となると、話が変わってくるかも知れません。
> 加減算か、乗除算か、あるいはその他の演算かによって、最終的な有効桁数は変化するからです。
>
> たとえば、演算の途中で15桁を超えるような事があれば、
> 最終結果が15桁以内に収まったとしても、桁落ちする可能性はあるでしょう。

そうですね。
いろいろご丁寧に教えて下さって本当にありがとうございました。