Práve som začal pracovať s MPFR ľubovoľnepresné knižnice a pomerne skoro sa stretnú s veľmi divokým správaním. Hlavným cieľom jeho použitia bolo zvýšenie presnosti lagre argumentov, a to funguje veľmi dobre v MPFR.
Ale potom som sa rozhodol vyskúšať jednoduchú matematiku a bolo to neuveriteľné - dokonca aj v priamych príkladoch s prísnymi odpoveďami existujú chyby zaokrúhľovania a nezávisí to od použitej presnosti.
Aj v príklade ako 1.1 * 1 je výsledkom 1.10000000000000008881784 ... A tento výsledok je daný pri šialenej 2000 bitovej presnosti (53 v normálnom dvojnásobku)!
Možno je to problém môjho systému, ale aj v prípade MPFR online existujú podobné problémy. Taký príklad môžete vyskúšať online: http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html
1 * 1,1 @ 64 bitov = 1,1000000000000000000002
Ale online verzia posunie chybu ďalej so zvýšením presnosti, ale v mojej inštalácii - nie.
Môj systém: Ubuntu 9.10 + gmp 5.0.0.1 + mpfr 2.4.2
odpovede:
3 pre odpoveď č. 1Zdá sa, že ide o kanonickú odpoveď na otázky presnosti s pohyblivou rádovou čiarkou, Obsahuje vysvetlenie, prečo problém nevyrieši viac bitov.
Stará odpoveď
Pozri otázku 7 častých otázok o MPFR. Každopádne vždy dôjde k nejakej chybe, pretože veľa čísel nie je možné presne vyjadriť pomocou binárnych mantis bez ohľadu na to, koľko bitov používate. vidieť túto odpoveď pre súvisiace vysvetlenie.