tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 当方疑問解決です。VB6.0の方が正しく計算できていない(再投稿)
投稿日: 2008/10/06(Mon) 19:00
投稿者chime
花ちゃんさん

> 下記なら VB6.0 でも 結果が  8.18545231595635E-12 となり .NET と同じ結果になります
> どうも VB6.0 の方がおかしいようですね。
> Debug.Print CStr(sj1)   '結果  8.18545231595635E-12

上記結果を確認しました。

i=13での結果で
2737.46092971297-2737.46092971296
を計算しているのですが、Yuoさんご指摘の倍精度有効桁数15桁の最後の桁が違います。
直接計算では     8.32489632784927E-12
ご指摘の分割計算では 8.18545231595635E-12 でVB2005と一致します。

しかし、sj=1E-10から計算するとやはり有効桁数最後での違いで
VB6は
非分割計算では      8.15015101848088E-17
分割計算では       7.97972798949331E-17
VB2005は
非分割計算では      8.32667268468867E-17
分割計算では       8.32667268468867E-17
です。
VB6は分割してもVB2005の結果とは一致しません。

VB6、VB2005の結果もいずれも倍精度有効桁数の範囲で8E-12、8E-17
となり、第16桁目以降は議論できないとの結論です。

有益なコメント大変ありがとうございました。 

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。