Supponiamo di avere 100000000 valori in virgola mobile a 32 bit in un array e ognuno di questi float ha un valore compreso tra 0.0 e 1.0. Se si è tentato di riassumere tutti in su come questoQual è un buon modo per aggiungere un gran numero di piccoli oggetti galleggianti?
result = 0.0;
for (i = 0; i < 100000000; i++) {
result += array[i];
}
che ci si esegue in problemi come result
ottiene molto più grande di 1,0.
Quindi quali sono alcuni dei modi per eseguire la sommatoria in maniera più accurata?
perché ti aspetti che il risultato sia inferiore a 1? Non ho capito bene! – lexu
Penso che stia dicendo che * una volta * il risultato supera 1.0 i problemi iniziano a sorgere. * Quali * problemi non conosco, ma è così che l'ho preso. –
In Python, usate 'math.fsum' (http://docs.python.org/library/math.html#math.fsum). – kennytm