Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Fejl i svar for "<" for særlige værdier?

 Besvar Besvar
Forfatter
eliaswiwe Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 15.Feb.2024
Land: Danmark
Status: Offline
Point: 3
Indlæg funktioner Indlæg funktioner   Tak (0) Tak(0)   Citér eliaswiwe Citér  BesvarSvar Direkte link til dette indlæg Emne: Fejl i svar for "<" for særlige værdier?
    Sendt: 15.Feb.2024 kl. 15:38
Jeg er til hverdag en ganske ferm excel-bruger, men jeg er stødt på en fejl, som jeg simpelthen ikke begriber.

=(0,85-0,8)<0,05
returnerer SAND i mit Excel.
Mens fx 
=(0,9-0,85)<0,05
på korrekt vis returnerer FALSK

Når man oplever den slags "fejl" i Excel plejer det altid at være en selv, der har jogget i spinaten, men jeg forstår ikke, hvad jeg kan have gjort forkert her.

Fil vedhæftet.

Mvh. Elias


uploads/3070/Hvad_sker_der_for_Excel_RØD.xlsx - uploads/3070/Hvad_sker_der_for_Excel_RØD.xlsx
Til top



Til top
Hans K. Se dropdown
Guld bruger
Guld bruger


Medlem: 04.Apr.2019
Land: Danmark
Status: Offline
Point: 1427
Accepteret svar Accepteret svar
Indlæg funktioner Indlæg funktioner   Tak (1) Tak(1)   Citér Hans K. Citér  BesvarSvar Direkte link til dette indlæg Sendt: 15.Feb.2024 kl. 21:56
Det skyldes noget der kaldes floating point error.
Du kan læse om det blandt andet her:


Prøv at vælge celle A1 i din fil. I formelfeltet markerer du med muser præcist følgende del af din formel:

0,85-0,8
Tryk på F9 og du vil se: 0,0499999999999999

Det er meget tæt på 0,5, men ikke helt præcist, og derfor er (0,049999999999999 < 0,05) SAND
Men hvorfor 0,049999999999999 tænker du måske og det er noget med konvertering mellem det decimale talsystem og det binære talsystem, hvis det siger dig noget som helst. Hvis ikke kan du finde tusindvis af artikler om det på Internettet. Her er en Microsoft har publiceret (samme som oven for)

(men artiklen er temmelig teknisk)

Du kan i den slags situationer bruge en formel som:
=ROUND(ABS(0,85-0,8);5)<0,05 som returnerer FALSE.
Til top
eliaswiwe Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 15.Feb.2024
Land: Danmark
Status: Offline
Point: 3
Indlæg funktioner Indlæg funktioner   Tak (0) Tak(0)   Citér eliaswiwe Citér  BesvarSvar Direkte link til dette indlæg Sendt: 15.Feb.2024 kl. 15:40
uploads/3070/Hvad_sker_der_for_Excel_RØD_2024-02-15_15-39-19.xlsx

(Prøver lige linket/vedhæftningen igen)
Til top
Hans K. Se dropdown
Guld bruger
Guld bruger


Medlem: 04.Apr.2019
Land: Danmark
Status: Offline
Point: 1427
Accepteret svar Accepteret svar
Indlæg funktioner Indlæg funktioner   Tak (1) Tak(1)   Citér Hans K. Citér  BesvarSvar Direkte link til dette indlæg Sendt: 15.Feb.2024 kl. 21:56
Det skyldes noget der kaldes floating point error.
Du kan læse om det blandt andet her:


Prøv at vælge celle A1 i din fil. I formelfeltet markerer du med muser præcist følgende del af din formel:

0,85-0,8
Tryk på F9 og du vil se: 0,0499999999999999

Det er meget tæt på 0,5, men ikke helt præcist, og derfor er (0,049999999999999 < 0,05) SAND
Men hvorfor 0,049999999999999 tænker du måske og det er noget med konvertering mellem det decimale talsystem og det binære talsystem, hvis det siger dig noget som helst. Hvis ikke kan du finde tusindvis af artikler om det på Internettet. Her er en Microsoft har publiceret (samme som oven for)

(men artiklen er temmelig teknisk)

Du kan i den slags situationer bruge en formel som:
=ROUND(ABS(0,85-0,8);5)<0,05 som returnerer FALSE.
Til top
eliaswiwe Se dropdown
Forum Begynder
Forum Begynder
Avatar

Medlem: 15.Feb.2024
Land: Danmark
Status: Offline
Point: 3
Indlæg funktioner Indlæg funktioner   Tak (0) Tak(0)   Citér eliaswiwe Citér  BesvarSvar Direkte link til dette indlæg Sendt: 16.Feb.2024 kl. 07:49
Wow, det var et utroligt hurtigt og præcist svar. Clap

Mange tak!

God dag!
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk