Fai la tua domanda
0

Strani decimali in una sottrazione (CALC)

chiesto il 2019-12-26 20:02:54 +0100

Immagine gravatar per Mr.Crocodile

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

modifica retag flag offensive close merge delete

Commenti

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.

Immagine gravatar per R.C. R.C. ( 2019-12-26 21:39:41 +0100 )modifica

2 Answers

0

risposto il 2020-01-05 15:28:11 +0100

Immagine gravatar per Mr.Crocodile

C:\fakepath\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 C:\fakepath\Clipboard01.jpg

modifica flag offensive delete link more
0

risposto il 2019-12-31 00:07:42 +0100

Immagine gravatar per akurery

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)

https://it.wikipedia.org/wiki/Numero_...

https://en.wikipedia.org/wiki/Round-o...

modifica flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower

Stats

Chieste: 2019-12-26 20:02:54 +0100

Seen: 29 times

Last updated: Jan 05