次の方法で共有

Excel64bitの計算精度

Anonymous
2020-04-14T07:48:05+00:00

Excel32bitと64bitの双方を使用しています。マクロで結構大きな計算をしているのですが,答えが異なります。

そこで,Ln(x)をマクロで級数解から求め,内部関数の値と比べてみました。内部関数の精度もわからないのですが,

両者で答えは異なり,32bitの方が誤差が小さいようです。級数解は1千万分割と一億分割を用いています。

級数解は加減乗除の計算のみなので,両者で答えが異なることも不思議です。

数値計算において何か特別なアルゴリズムを用いているのでしょうか。

EXCELの精度はe+_300となっていたと思いますが何故このようなことが起きるのでしょうか

今後,混在は避けるべきなのでしょうか。

なお,officeのバージョンとは関係なさそうです。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2020-04-14T08:20:37+00:00

Excelの問題ではなく、コンピューターで計算する上では避けられない問題の話かと思います。

浮動小数点って何?

https://qiita.com/angel_p_57/items/24078ba4aa5881805ab2

二進数で割り切れない場合、どこかで折り合いをつけないといけないので、必ずどこかで誤差が出るという話です。

また、32bitと64bitでも計算結果が変わるようです。

Unity の iOS64bit 対応で発生した浮動小数点数の誤差について

https://qiita.com/tohrinagi/items/537253beeb7b6e65241f

どういう対応をするべきなのかということではなく、そういうことが存在しているという認識の話になるのではないでしょうか。

(全然違う話だったらすみません)

この回答は役に立ちましたか?

2 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-04-14T23:44:03+00:00

    プーアル茶様

    有難うございました。

    有効数字が15桁なので,誤差が出ること自体は問題ではないと思っています。

    32bitと64bitで誤差が異なることが主な疑問だったのですが,

    浮動小数点演算の方法が異なるということですね。

    アルゴリズムを作成する際に有効桁数は気にしていましたが,

    とりあえず32bitの結果を採用することにします。

    M。Mizutani

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2020-04-14T08:51:22+00:00

    こんにちは。
    VBA専用のフォーラムが存在するため、並行して投稿してみて下さい。
    https://social.msdn.microsoft.com/Forums/ja-JP/...

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません