PDA

Visualizza la versione completa : [C++] Funzione per stampare con libreria GMP


Ghemon-a
30-11-2011, 22:01
Salve a tutti,
sto utilizzando la libreria gmp e da quello che ho capito, per stampare a schermo un double bisogna usare la seguente funzione:

size_t mpf_out_str (FILE * stream , int base , size_t n_digits , mpf_t op )
Il problema è che non ho ben capito che parametri passargli...( sempre se questa sia la funzione per stampare a schermo :confused: )

oregon
30-11-2011, 22:23
E' la funzione che invia il valore su stream. Se è NULL allora invia allo stdout (in genere lo schermo). Per i parametri trovi tutto su

http://www.delorie.com/gnu/docs/gmp/gmp_57.html

Ma perché parli di un "double"?

Ghemon-a
30-11-2011, 22:28
Originariamente inviato da oregon
E' la funzione che invia il valore su stream. Se è NULL allora invia allo stdout (in genere lo schermo). Per i parametri trovi tutto su

http://www.delorie.com/gnu/docs/gmp/gmp_57.html

Ma perché parli di un "double"?

Scusami, non intendevo un double, ma un decimale ( molto grande naturalmente )

oregon
30-11-2011, 22:32
Originariamente inviato da Ghemon-a
Scusami, non intendevo un double, ma un decimale ( molto grande naturalmente )

Ah, ecco ...

Questa invia allo stream indicato come primo parametro (NULL = stdout), il valore di op nella base indicata (a te interessa la base 10) con un numero massimo di cifre n_digits

Ma fai prima a provarla.

Ghemon-a
30-11-2011, 22:33
Comunque, sto seguendo la stessa documentazione, ma il numero stampato a schermo non corrisponde

oregon
30-11-2011, 22:35
Originariamente inviato da Ghemon-a
Comunque, sto seguendo la stessa documentazione, ma il numero stampato a schermo non corrisponde

Che vuoi che ti dica ...

Ghemon-a
30-11-2011, 22:40
Originariamente inviato da oregon
Che vuoi che ti dica ...
Scusami, non avevo fatto in tempo a leggere il tuo ultimo messaggio. Grazie, ho risolto...non passavo il parametro NULL.
Ora l'out a schermo viene in un certo modo normalizzato, infatti il un numero del tipo 12345.123 mi viene restituito come 0.12345123e5
Posso visualizzarlo solamente con l'esponente ?

oregon
30-11-2011, 22:43
Scusa, ma ci fai vedere cosa scrivi?

Ghemon-a
30-11-2011, 22:47
Originariamente inviato da oregon
Scusa, ma ci fai vedere cosa scrivi?



#include <stdio.h>
#include <gmp.h>

int main()
{
mpf_t x;
mpf_init2(x,256);

mpf_inp_str(x,0,10);

mpf_out_str (NULL,10,20,x);

mpf_clear(x);
}

oregon
30-11-2011, 22:51
Originariamente inviato da Ghemon-a
Posso visualizzarlo solamente con l'esponente ?

Ok ma non ho capito che vuoi dire con "solamente con l'esponente" ...

Loading