2013-07-06 15 views
5

La norma IEEE-754 definisce l'aritmetica decimale al fine di evitare errori di arrotondamento quando si utilizzano numeri in virgola mobile di base dieci (vedere ad esempio decimal64 on wikipedia). C'è un modo per usare questa aritmetica decimale in C o C++?Aritmetica decimale in C o C++?

+4

Utilizzare una libreria. libgmp, mpfr, Boost Multiprecision – sehe

+3

Lo standard C non ha tipi decimali decimali espliciti, ma [GCC fornisce questo] (http://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html). Esistono molteplici rappresentazioni binarie in competizione; Credo che GCC risolva la rappresentazione su ogni piattaforma supportata. –

+2

I formati decimali definiti in IEEE-754 non evitano errori di arrotondamento. (Prova, ad esempio, 10/3) –

risposta

4

TR 24733 specifica il calcolo matematico decimale in virgola mobile per C++, basato su IEEE-754. Il TR indica che si tratta di un rapporto tecnico, quindi non fa parte dello standard C++. GCC afferma di avere uno implementation parziale. Al momento è in corso una proposta per aggiungerla allo standard C++, ma nel giro di alcuni anni è meglio.

+0

+1, grazie Pete per il tuo prezioso contributo. È davvero potente avere membri/designer di commissione a bordo di un sito di garanzia della qualità. – sehe

+0

@sehe - prego. –