PDA

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


enrico1987
14-11-2011, 20: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;

con i e j indici dei documenti e delle parole, e tf dichiarato come puntatore a puntatore per avere un array dinamico.
Su queste 2 linee di codice non dovrebbero esserci errori perchè ho altri array (quello delle occorrenze per esempio) dichiarati allo stesso modo ;)

Spero che qualcuno possa aiutarmi! Grazie mille!

Cait Sith
15-11-2011, 23:33
Non è che occ[i][j] e terms_of_document[i] sono array di interi?
Perchè altrimenti il programma fa la divisione tra numeri interi (con troncamento) e poi casta a double.
In questo caso devi fare così:

tf[i][j]=((double)occ[i][j])/((double)terms_of_document[i]);