Salve e buon Natale a tutti.
Ho notato degli strani decimali in alcuni calcoli banali di somme e sottrazioni.
Ad esempio in calc scrivo nella cella A1 7085,93, nella cella B1 7091,48
In C1 faccio =A1-B1 ed ottengo in basso -5,54999999999927 (mentre apparentemente la formattazione standard della cella mi da -5,55) anzichè -5,55 pulito.
Ovviamente questo pone problemi quando faccio confronti di numeri ottenuti in operazioni simili con numeri che inserisco a mano infatti se in D1 inserisco a mano -5,55 e poi in E1 effettuo un confronto tra C1 e D1 ottengo che i numeri sono diversi cosa che in realtà non dovrebbe essere.
LibreOffice 6.3.4.2 (x64) su Win 7 64bit
Io ho ancora la versione 6.0.6.2 (su Windows 10), e la sottrazione si effettua come deve. Consiglierei di allegare il file dove ti si presenta il problema, per capire quale ne sia la causa.
Il problema è che per fare le operazioni il pc converte i numeri con decimali in formato (binario) a virgola mobile (floating point) e non tutti i numeri sono rappresentabili esattamente con questo sistema.
Perciò in alcuni casi possono verificarsi (non solo in LibreOffice) degli errori (minimi) di arrotondamento nei decimali, anche in una (apparentemente banale) sottrazione.
Per maggior sicurezza e tagliare la testa al toro, specie con moltiplicazioni e divisioni, ma anche in casi come questo, meglio usare la funzione ARROTONDA(A1-B1;2)
Test.ods
Buon anno, allego il file di test.
Seguendo le risposte capisco il problema ma mi viene un dubbio: la calcolatrice di windows non sembra affetta da questo genere di errore. Quindi mi viene da pensare che è risolvibile in qualche modo a livello di programmazione.
Per chiarezza allego anche una schermata per mostrare dove vedo l’errore di calcolo. Ho riscontrato lo stesso comportamento anche sulla versione 6.1.3.2 64bit sempre su win7 64bit
Clipboard01.jpg