Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel2003]Rare uitkomst na CEL-CEL

Pagina: 1
Acties:

  • Hoyden
  • Registratie: December 1999
  • Laatst online: 20:46
Het volgende:

Men heeft een Excel sheet.

CEL B1 bevat de waarde 28.000
CEL C1 bevat de waarde 27.400
CEL D1 bevat de waarde =C6-B6

De uitkomts hiervan moet gewoon zijn 0.600
Dat staat er ook wel, maar als ik het aantal decimalen in cel D1 uitbreid naar 15 dan verschijnt er
-0.600000000000001

Nu mijn vraag waar die 1 op het eind vandaan komt.

Alle cellen hebben de instelling Number en 3 decimalen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CELB      CELC      CELD
28.000  27.400  -0.600000000000001
28.349  28.446  0.097000000000001
28.236  28.342  0.105999999999998
28.221  28.328  0.106999999999999
28.279  28.385  0.106000000000002
28.353  28.462  0.108999999999998
28.423  28.534  0.111000000000001
28.3490000000000000000  28.461  0.111999999999998
28.224  28.333  0.108999999999998
28.358  28.466  0.10800000000000100
28.246  28.357  0.111000000000001
28.341  28.452  0.111000000000001
28.355  28.466  0.111000000000001
28.283  28.396  0.113000000000000
28.284  28.397  0.113000000000000


Waar haalt excel deze soms vreemde soort afrondingswaardes weg en waarom is het geen heel getal ?
De waardes in cellen B en C bevatten geen andere getallen na het 3e decimaal dan allemaal nullen (heb ik gechecked en hierboven heb ik dat laten zie middels in rij..)

Iemand een verklaring voor dit fenomeen wat zich op elke pc voordoet ?

Als deze gegevens namelijk gebruikt worden in een grafiek (met een *1000 waarde) dan krijgen we rare verschillen.

[ Voor 4% gewijzigd door Hoyden op 02-10-2008 10:33 ]


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 30-11 15:08

Dido

heforshe

Dat fenomeen is eenvoudigweg het gevolg van het feit dat je decimale (dus tientallige) getallen niet allemaal met oneindige preciesie als binaire (dus tweetallige) getallen kan weergeven.

Simpel gezegd: binair kun je met 1/2, 1/4, 1/8, 1/16 etc werken, decimaal met 1/10, 1/100, 1/1000 etc.

Stel je voor dat je trinair gaat tellen, dan kun je 1/3 met oneindige nauwkeurigheid met 1 "decimaal" weergeven, terwijl dat binair en decimaal niet gaat lukken :)

Om eea zo goed mogelijk te benaderen wordt er heel wat gerekend achter de komma, maar het kan leiden tot minime afrondingsfoutjes in de laatste decimaal. Als voor jouw toepassing die afwijking trouwens significant is zou je budget moeten hebben voor serieuzere tool dan excel ;)

[ Voor 23% gewijzigd door Dido op 02-10-2008 10:27 ]

Wat betekent mijn avatar?


  • Hoyden
  • Registratie: December 1999
  • Laatst online: 20:46
Dido schreef op donderdag 02 oktober 2008 @ 10:26:
Dat fenomeen is eenvoudigweg het gevolg van het feit dat je decimale (dus tientallige) getallen niet allemaal met oneindige preciesie als binaire (dus tweetallige) getallen kan weergeven.

Simpel gezegd: binair kun je met 1/2, 1/4, 1/8, 1/16 etc werken, decimaal met 1/10, 1/100, 1/1000 etc.

Stel je voor dat je trinair gaat tellen, dan kun je 1/3 met oneindige nauwkeurigheid met 1 "decimaal" weergeven, terwijl dat binair en decimaal niet gaat lukken :)

Om eea zo goed mogelijk te benaderen wordt er heel wat gerekend achter de komma, maar het kan leiden tot minime afrondingsfoutjes in de laatste decimaal. Als voor jouw toepassing die afwijking trouwens significant is zou je budget moeten hebben voor serieuzere tool dan excel ;)
Thnx voor je uitleg.
Niet dat ik het nu geheel snap hoor, maar als er een beredenering voor is, en het is geen fout, dan heb ik er vrede mee.
Ik zal de gebruiker meedelen dat deze manier niet gaat werken.. ;)

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 29-11 23:42
Waarom rond je antwoorden, respectievelijk de output niet af op 3 decimalen ??

  • Hoyden
  • Registratie: December 1999
  • Laatst online: 20:46
Bolukan schreef op vrijdag 03 oktober 2008 @ 20:35:
Waarom rond je antwoorden, respectievelijk de output niet af op 3 decimalen ??
Dat heeft de gebruiker inmiddels ook gedaan.

Bedankt iig voor het meedenken. :>