Jawaban animal_magic benar bahwa Anda harus menambahkan angka dari terkecil ke terbesar, namun saya ingin memberikan contoh untuk menunjukkan alasannya.
Asumsikan kita sedang bekerja dalam format floating point yang memberi kita akurasi 3 digit. Sekarang kami ingin menambahkan sepuluh angka:
[1000, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Tentu saja jawaban pastinya adalah 1009, tetapi kami tidak dapat memperolehnya dalam format 3 digit. Membulatkan menjadi 3 digit, jawaban paling akurat yang kami dapatkan adalah 1010. Jika kami menambahkan terkecil ke terbesar, pada setiap loop yang kami dapatkan:
Loop Index s
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1009 -> 1010
Jadi kami mendapatkan jawaban yang paling akurat untuk format kami. Sekarang mari kita asumsikan bahwa kita menambahkan dari yang terbesar ke yang terkecil.
Loop Index s
1 1000
2 1001 -> 1000
3 1001 -> 1000
4 1001 -> 1000
5 1001 -> 1000
6 1001 -> 1000
7 1001 -> 1000
8 1001 -> 1000
9 1001 -> 1000
10 1001 -> 1000
Karena angka floating point dibulatkan setelah setiap operasi, semua penambahan dibulatkan, meningkatkan kesalahan kami dari 1 menjadi 9 dari tepat. Sekarang bayangkan jika set angka yang Anda tambahkan memiliki 1000, dan kemudian seratus 1, atau satu juta. Perhatikan bahwa untuk menjadi benar-benar akurat, Anda ingin menjumlahkan dua angka terkecil, kemudian memasukkan hasilnya ke dalam set angka Anda.