sto cercando di capire perché usando '/' con una lunga doppia nel seguente modo porta ad un valore 0.000000 mentre lo stesso codice con doppio noUtilizzo di "/" con doppio lungo?
double d = (double)total_results/(double)total_points;
Dà il valore 0,785,403 mila ma
long double d = (long double)total_results/(long double)total_points;
Fornisce il valore 0,000000. Sto cercando di ottenere il valore più accurato per
EDIT 'TOTAL_RESULTS/total_points': Alla fine l'errore era semplicemente che stavo output utilizzando '% f' invece di '% Lf'
Prima
printf("Running on %d thread(s), results is %f.\n", NUM_THREADS, d);
Dopo
printf("Running on %d thread(s), results is %Lf.\n", NUM_THREADS, d);
quale piattaforma/compilatore? – CharlesB
Quali sono i tipi di total_results e total_points? Lanciarli a 'long double' potrebbe cambiare il valore in modo errato – Eregrith
Funziona per me in C++ –