[C++] Zeer inaccurate float

Pagina: 1
Acties:
  • 288 views

Acties:
  • 0 Henk 'm!

  • Iska
  • Registratie: November 2005
  • Laatst online: 24-08 21:44

Iska

In case of fire, use stairs!

Topicstarter
Hey allemaal,

Ik was bezig met wat berekenen totdat ik erachter kwam dat C++ hele afwijkende waarden gaf voor bepaalde getallen! -1/3 is bij mij -0.33333334326744 !!! Zowel als ik het bereken op mij CPU als op mij GPU (beiden@stock)!

Hoe kan dit en hoe kan ik dit oplossen? Ik heb namelijk wel de volledige nauwkeurigheid nodig en niet een foutmarge van 3 * 10^-6%

-- All science is either physics or stamp collecting


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

het is een standaard floating point (32bits). Je kan in plaats daarvan double precision floating point nummers gebruiken (64bit), maar "volledige" nauwkeurigheid is niet iets wat computers uit hun zelf doen :)

-niks-


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 00:16

Matis

Rubber Rocket

Daar zijn toch doubles voor uitgevonden? Maar 1/3 is nooit nauwkeurig te schrijven in een decimaal. Net als pi en sqrt(2)

edit; spuit 0x0B

[ Voor 7% gewijzigd door Matis op 12-01-2010 19:53 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 24-08 19:45
http://www.nongnu.org/hpalib/

Het is ook afhankelijk van je compiler, je CPU (en een hoopje andere hardware) en je variabele type - een float is precies tot ~6 cijfers na de komma, een double tot ~15.

Pandora FMS - Open Source Monitoring - pandorafms.org


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 13:41

CoolGamer

What is it? Dragons?

Je zou een Arbitrary-precision arithmetic library kunnen gebruiken. Die werken niet met een floating point en zijn veel preciezer.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Met andere woorden: zoekt en gij zult vinden. Je bent niet bepaald de eerste met dit probleem en je zal ongetwijfeld niet de laatste zijn. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NMe schreef op dinsdag 12 januari 2010 @ 19:55:
Met andere woorden: zoekt en gij zult vinden. Je bent niet bepaald de eerste met dit probleem en je zal ongetwijfeld niet de laatste zijn. ;)
EY! :(
Je vergeet de FAQ: Floats en afronding :+

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.