Gå til innhold

Skulle fått 18.9 får 18.99999999999


Anbefalte innlegg

Jeg jobber med en oppgave hvor programmet skal summere noen verdier med en desimal. Resultene stemmer i de fleste tilfeller, men noen ganger så blir det en miljondel feil.

 

Det er en dobule varible.

 

Kan noen være så snill å forklare dette?

Lenke til kommentar
Videoannonse
Annonse

Double følger IEEE 754-standaren og bruker 64 bit for å representere flyttall. Det er rett og slett begrensninger i hvor nøyaktig de reelle tallene kan representeres med et fast antall bit.

 

Dersom du ønsker å forstå hvordan double representerer tall kan du lese her: http://en.wikipedia.org/wiki/Double_precision

 

Double bruker disse bitene:

  • 1 bit for å fortelle om det er et negativt eller positivt tall.
  • 11 bit for å angi eksponenten
  • 52 bit for å angi metisse.

Og de brukes på denne måten: chart?cht=tx&chl= 1.xxxx\;\cdot\;2^{yyyy} hvor x-ene er metisse og y-ene er eksponenten.

Endret av Blackslash
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...