PDA

View Full Version : [C++] problema con double


enrico1987
14-11-2011, 19:32
Salve, ho un problema.
Ho scritto un programma che lavora su dei file di testo, fra le varie cose ho anche scritto una funzione per calcolare il tf-idf (term frequency–inverse document frequency) e proprio in questa funzione ho un problema:
in pratica per calcolare il valore TF va fatta questa operazione occorrenze termine / numero parole documento
Dato che il numero di occorrenze di una determinata parola è molto piccolo rispetto al numero di parole del documento mi approssima sempre il risultato a zero nonostante abbia usato il tipo double per TF.
Giusto per completezza vi posto anche la linea di codice e la dichiarazione di TF.
tf[i][j]=occ[i][j]/terms_of_document[i]
double** tf;

enrico1987
14-11-2011, 19:55
quella era solo la definizione di tf, ecco la dichiarazione completa:

//matrice che conterrà il tf realtivo ad ogni coppia documento-termine
tf=new double*[righe];
for (int i=0;i<righe;i++)
tf[i]=new double [colonne]

comunque occ e terms sono interi, credevo che bastasse che la variabile contenente il risultato fosse di tipo double, ma da quello che hai scritto mi sa di no.... Devono essere anche loro double?

Edit: ovviamente quella di prima era la dichiarazione, mentre questa è la definizione.

enrico1987
14-11-2011, 22:12
Risolto. Era come avevo capito, dovevo fare il casting in double delle variabili int.
Inizialmente avevo pensato che non c'era bisogno, ma giustamente gli int hanno una lunghezza minore in memoria e quindi l'operazione era totalmente diversa.

Grazie mille