Başlangıç sayıları sonuçtan çok daha büyük olduğundan, IEEE 754 kayan nokta aritmetiği nedeniyle hassasiyet kaybıyla karşılaşacaksınız . Excel, IEEE 754 Çift Hassasiyet kullanır .
Ayrıntılara girmeyeceğim ama bunun yerine sorunu açıklayacağım. Öncelikle, tüm sayıları IEEE 754'e çevirelim:
11474.97 ≙ 0 1000000 1100 0110 01101001 01111100 00101000 11110101 11000010 10001111
... 0 işaret ( 0 ), 10000001100 üstel ve geri kalanı mantis.
-10781.34 ≙ 1 1000000 1100 0101 00001110 10101011 10000101 00011110 10111000 01010010
693.63 ≙ 0 1000000 1000 0101 10101101 00001010 00111101 01110000 10100011 11010111
Gördüğünüz gibi, büyük sayılar aynı üsse sahip oluyor. Üst kısım ne kadar büyük olursa, kaydedilen sayı o kadar az kesindir:
11474.97 → 11474.9699999999993451638147235
-10781.34 → -10781.340000000000001455191522837
693.63 → 693.62999999999999995452526491135
Hizalanmış sayılardan zaten görebileceğiniz gibi, 693.63'ün saklanma şekli daha kesindir.
Yani, sayıları ekleme sonucu:
0 1000000 1000 0101 10101101 00001010 00111101 01110000 10100011 11010000
Tekrar karşılaştıralım:
0 1000000 1000 0101 10101101 00001010 00111101 01110000 10100011 11010000 - Sonuç
0 1000000 1000 0101 10101101 00001010 00111101 01110000 10100011 11010111 - Sabit
Yani, tamamen aynı değil. Kayan nokta sayılarını her zaman bir toleransla karşılaştırmalısınız. Bunun gibi, böyle:
abs(a - b) < 0.000000001