Microsoft Excel 2007 Calculation Bug

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Hardcore Gamer

    Group
    Member
    Posts
    9,895
    Reputation
    +4
    Location
    Bergamo

    Status
    Anonymous
    In Microsoft Office Excel 2007 e Excel Services 2007 è stato isolato un bug che affligge il calcolo dei numeri che si arrotondano a "65535" (il software mostra come risultato "100000"). Il team di sviluppo di Excel ha confermato la problematica ieri in un intervento sul blog ufficiale dedicato al prodotto ed ha annunciato l'imminente rilascio di un fix che attualmente sta venendo testato internamente. Riportiamo di seguito la traduzione dell'intero intervento del team di Excel che offre i dettagli sul bug.

    Background. Ieri sera siamo stati avvisati di un problema in Excel 2007 (e Excel Services 2007) che riguarda il calcolo dei numeri in arrotondamento a 65535. Il primo esempio che ci è stato segnalato è =77.1*850, ma dal nostro testing e da ulteriori segnalazioni è risultato chiaro che si trattava solo di un esempio in cui Excel 2007 restituiva il valore di 100000 invece di 65535. La maggior parte di queste segnalazioni addizionali si focalizzavano sull'operazione di moltiplicazione (es. =5.1*12850; =10.2*6425; =20.4*3212.5 ), tuttavia i nostri test hanno mostrato che questo problema non ha niente a che fare con la moltiplicazione, ma si manifesta con molti (non tutti) i calcoli in Excel che dovrebbero restituire 65535 (=65535*1 e =16383.75*4 funzionano per esempio). Ulteriori test hanno mostrato un simile fenomeno con il valore 65536. Questo problema è presente solo in Excel 2007, e non interessa le versioni precedenti.

    Problema. Questo problema è stato introdotto nelle modifiche alla logica di calcolo di Office 2007. Specificatamente, Excel mostra in modo non corretto il risultato di un calcolo in 12 casi molto specifici (evidenziati di seguito). La chiave del problema non è effettivamente nel calcolo in se (il risultato del calcolo conservato nella memoria di Excel è corretto), piuttosto solo nel risultato che viene mostrato nel foglio. Per dirla in altre parole, =850*77.1 mostrerà un valore non corretto, ma se si moltiplica il risultato per 2, si otterrà la risposta esatta (es. se A1 contiene "=850*77.1", e A2 contiene "=A1*2", A2 restituirà il valore corretto 131070).

    Quindi quali solo precisamente i valori che causano questo problema di visualizzazione? Dei 9.214*10^18 numeri in virgola mobile che Execel 2007 è in grado di salvare, ci sono 6 numeri floating point (utilizzando una rappresentazione binaria) tra 65534.9999999999 e 65535, e 6 tra 65535.99999999995 e 65536, che causano questo problema. Potete inserire questi numeri in Excel direttamente (Excel arrotonderà a 15 cifre all'inserimento), ma tutti i calcoli che restituiscono uno di questi valori mostreranno questo problema se il risultato del calcolo viene mostrato in una cella. Tutti gli altri calcoli non sono affetti.

    Soluzione. Consideriamo la funzione di calcolo in Excel molto seriamente e faremo tutto il possibile per assicurarci che i calcoli siano corretti in tutti i casi. Abbiamo realizzato un fix per questo problema e siamo nelle ultime fasi di "broad test pass" per assicuraci che la correzione funzioni e non introduca ulteriori problemi – in particolare nessun altro problema di calcolo. Il fix deve passare dal nostro "official build lab" al sito di download – cosa che prevediamo molto presto. Pubblicheremo un altro intervento quando sarà disponibile il download.

    Bisogna segnalare tuttavia che la spiegazione fornita dal team di sviluppo di Excel non è del tutto convincente, almeno questo evidenziano i numerosi commenti pubblicati sul blog ufficiale secondo i quali il bug non sembrerebbe essere solo un problema di "visualizzazione" come affermato da team.
     
    .
0 replies since 9/10/2007, 17:36   278 views
  Share  
.