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.
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
microsoft-excel
kmort
sumber
sumber
Jawaban:
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)).
sumber