Als je echt nieuwsgierig bent hoe het komt, moet je je verdiepen in floating point getallen. Computers hebben een aantal manieren van hoe zij een getal representeren. Een bekende variant hiervan is een integer, waarvan we allemaal wel eens gezien hebben hoe dat werkt.
Simpel voorbeeld
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
Nu werkt het meestal iets anders met computers, zij gaan standaard van negatieve waarde uit zodat zij evenveel negatieve getallen als positive getallen kunnen uitbeelden. (Zo heb je niet een plus of min teken nodig)
Simpel voorbeeld
001 = -3
010 = -2
011 = -1
100 = 0
101 = 1
Dit is heel leuk, maar we hebben nog steeds geen getal achter de komma neergezet. Ook dit kan je oplossen door bijvoorbeeld alle getallen die je uitbeeldt te delen door 100, maar je blijft met een probleem zitten dat je heel veel 1's en 0's nodig hebt om alle getallen in een bereik uit te beelden. De oplossing in computertermen is de floating point. Met een floating point kan je een groter bereik aan getallen uitbeelden, maar niet zo precies als integers. In andere woorden, je levert precizie in voor grotere getallen te kunnen maken. Het werkt als volgt. Dit voorbeeld gebruikt 4 bits, waarvan de eerste 2 bits aangeven welke macht van 2 gebruikt wordt, en de laatste 2 vormen zoals bij een integer een getal.
00 00 = 0
00 01 = 1
00 10 = 2
00 11 = 3
01 00 = (2 tot de macht 1 (=2) + 0) = 2
01 01 = (2 tot de macht 1 (=2) + 1) = 3
01 10 = (2 tot de macht 1 (=2) + 2) = 4
01 11 = (2 tot de macht 1 (=2) + 3) = 5
10 00 = (2 tot de macht 2 (=4) + 0) = 4
..
11 11 = (2 tot de macht 3 (=8) + 3 = 11
Nu is in dit voorbeeld de getalsverhoudingen niet echt mooi gekozen. Veel getallen overlappen elkaar, maar je kan je wel voorstellen dat je door meer bits toe te wijzen aan het eerste gedeelte dat je bereik groter wordt. Ook moet je je voor kunnen stellen dat je soms een getal niet kan maken met zo'n combinatie. In dat geval kiest de computer een getal wat hij wel kan maken dat er zo dicht mogelijk bij in de buurt ligt.
Dit is ook precies wat er bij jouw voorbeeld gebeurt. Excel kan het getal niet maken in zijn interne code en kiest een getal wat hij wel kan maken dat er zo dicht mogelijk bij in de buurt ligt.
Om meer te lezen over hoe excel met je getallen omgaat verwijs ik je naar de engelse site van microsoft:
http://support.microsoft.com/kb/78113
Hierop staat dat excel 65 bits gebruikt en dat zij getallen van 1.79769313486232E308 tot 2.2250738585072E-308 zowel positief als negatief.