Urutan hal tambahan di Excel 2010 floating point?

2

Saya memasukkan beberapa angka di Excel 2010, dan memperhatikan apa yang tampaknya menjadi masalah floating point. Saya mengambil jumlah empat angka, mengharapkan nol, dan mendapat angka yang sangat kecil, mendekati nol. Saya berpikir, "oke, masalah floating point, pasti apa pun." Tapi kemudian saya perhatikan jika Anda menambahkannya dalam urutan yang berbeda, jumlah yang dihasilkan adalah nol.

Mengapa menambahkannya dalam urutan yang berbeda memengaruhi Excel ? Saya tidak mengharapkan ini. Ya, saya menyadari bahwa 1.13E-13 sangat kecil, dan sangat mendekati nol. Saya bertanya-tanya mengapa perbedaan perhitungan berdasarkan urutan penambahan.

Screenshot Excel

Data mentah mengikuti:

573.7   
-144.79 
-309.84 
-119.07 
1.136868E-13    =sum(A1:A4)
0.000000E+00    =A1+A2+A3+A4
1.13687E-13 =A4+A3+A2+A1
kmort
sumber
2
Artikel KB ini mungkin membantu
Burgi
1
Saya juga menemukan artikel wiki ini ... en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel mungkin membantu ini menjadi masalah yang menarik ...
Ditto
1
Lihat juga pertanyaan ini: superuser.com/questions/863192/…
Burgi
Saya melihat artikel tentang cara mengkompensasi itu. Saya lebih ingin tahu mengapa pesanan itu penting. Apakah saya melewatkan itu di artikel?
kmort
Excel memiliki jumlah digit untuk diperbaiki. Jika Anda mulai dengan angka besar, Anda mungkin tidak memiliki digit yang tersisa untuk angka yang jauh lebih kecil, sehingga angka itu mungkin tidak memengaruhi perhitungan. Jika Anda mulai dengan angka terkecil, Excel akan bekerja dengan itu. Jika nanti Anda menambahkan angka yang jauh lebih besar, Anda mungkin kehilangan beberapa presisi dalam angka yang lebih kecil, tetapi agregatnya mungkin cukup besar untuk dimasukkan, atau setidaknya mempengaruhi pembulatan.
fixer1234

Jawaban:

1

Jika Anda menggunakan fungsi rumus Evaluasi di Excel, Anda bisa melihat di hasil antara bahwa + b + c + d diurai dari kiri ke kanan. Jadi, a + b + c + d sebenarnya dihitung sebagai ((a + b) + c) + d.

Dengan kata lain, pertama-tama hasil a + b dihitung ( dan disimpan dalam format IEEE754 ), daripada c ditambahkan ke hasil itu, dll.

Ini menjelaskan mengapa hasilnya berbeda, karena (dengan mempertimbangkan ketidaktepatan hasil antara), ((a + b) + c) + d tidak sama dengan a + (b + (c + d)).

agtoever
sumber