MPFR questione di arrotondamento
-
22-09-2019 - |
Domanda
Ho appena iniziato a lavorare con MPFR precisione arbitraria biblioteca, e ben presto incontro molto strano comportamento.L'obiettivo principale di utilizzo era quello di migliorare la precisione di lagre argomento trigs e questo funziona molto bene in MPFR.
Ma poi ho deciso di controllare e semplice matematica era unbeleavable - anche in semplici esempi con rigorosa risposte errori di arrotondamento esiste e non dipende dalla precisione.
Anche nell'esempio di come 1.1 * 1 il risultato è 1.10000000000000008881784...E questo risultato è dato a folle 2000 bit di precisione (53 nel normale doppia)!
Forse è il mio sistema che è il problema, ma anche in linea MPFR problemi simili esistono.Si può provare, ad esempio online: http://ex-cs.sist.ac.jp/~tkouya/try_mpfr.html
1 * 1.1 @ 64 bit = 1.10000000000000000002
Ma la versione online si muove errore ulteriormente con l'aumento di precisione, ma nella mia installazione - no.
Il mio sistema:Ubuntu 9.10 + gmp 5.0.0.1 + mpfr 2.4.2
Soluzione
Questa sembra essere la risposta canonica a virgola mobile e precisione i problemi.Esso comprende una spiegazione del perché di più bit non risolve il problema.
Vecchia Risposta
Vedi domanda 7 del MPFR FAQ. Comunque, ci sarà sempre qualche errore, dal momento che molti numeri non sono esattamente rappresentabile con binario le mantisse non importa quanti bit si utilizza.Vedere questa risposta a una domanda COSÌ per una buona spiegazione.