Messaggi: 859
Discussioni: 87
Registrato: 18 Oct 2019
22/08/2021, 10:12
Diversi utenti stanno segnalando uno strano errore di arrotondamento in LibreOffice Calc.
Se in una cella si esegue, ad esempio, l'operazione 241,47-241 e poi si aumenta la larghezza della cella il risultato anziché 0,47 diviene 0,469999999999999.
Se ne sta discutendo nella
mailing list degli utenti italiani dove trovate anche altri esempi e valutazioni.
In attesa di saperne di più, tenetene conto se utilizzate LibreOffice Calc per eseguire calcoli ad alta precisione (nei calcoli ordinari non fa sostanzialmente nessuna differenza).
Bene per male è carità, male per bene è crudeltà
Messaggi: 738
Discussioni: 24
Registrato: 14 Nov 2019
22/08/2021, 15:53
(Questo messaggio è stato modificato l'ultima volta il: 22/08/2021, 15:56 da stonehenge.)
Ciao
Se scegliamo di formattare la cella con formato standard da quel risultato ma se noi impostiamo la terza voce il risultato sarà esatto. allegato 1 Standard
allegato 2(specificando i decimali).
Se vogliamo possiamo considerarlo un errore ma sarebbe più corretto quando creiamo un foglio di calcolo formattarlo prima di iniziare a lavorare specificando che si sta lavorando con decimali.
La vita è come uno specchio:ti sorride se la guardi sorridendo
Un giorno senza rischio è non vissuto..
PCLinuxOS Mate - Forum Manjaro Italia Mate/Kde/Xfce - Windows 10-32bit 21h2
Messaggi: 859
Discussioni: 87
Registrato: 18 Oct 2019
Sì, sono scenari di cui si è parlato anche nella discussione che ho segnalato.
Ma nessun altro foglio di calcolo si comporta così. E' chiaro che forzando l'arrotondamento il risultato è corretto ma è una procedura in gran parte superflua proprio perché il dato di default di un foglio di calcolo è un numero reale.
Bene per male è carità, male per bene è crudeltà
Messaggi: 738
Discussioni: 24
Registrato: 14 Nov 2019
22/08/2021, 17:27
(Questo messaggio è stato modificato l'ultima volta il: 22/08/2021, 17:29 da stonehenge.)
Strano se il numero è da 1 a 9 il risultato è corretto
5,47-5 da 0,47
se invece è uguale a 10 o superiore da errori diversi.
10,47-10 da 0,470000000000.......
100,47-100 da 0,46999999999....
Tutto normale con celle standard ma se la larghezza della cella supera i 3,1 cm da questi risultati strani.
succede solo se i decimali sono più di 1(0,15,0,47 ecc) e prevedono un risultato 0,(zero virgola).
se facciamo
10,4-10 da 0,4 corretto
10,47-10 da il risultato già visto sopra
Bene anzi male... ma saperlo può aiutare a superare il problema.
La vita è come uno specchio:ti sorride se la guardi sorridendo
Un giorno senza rischio è non vissuto..
PCLinuxOS Mate - Forum Manjaro Italia Mate/Kde/Xfce - Windows 10-32bit 21h2
Messaggi: 859
Discussioni: 87
Registrato: 18 Oct 2019
Quindi con i numeri minori di 10 si comporta in maniera ancora diversa... strano davvero
Bene per male è carità, male per bene è crudeltà
Messaggi: 862
Discussioni: 13
Registrato: 18 Oct 2019
23/08/2021, 12:40
(Questo messaggio è stato modificato l'ultima volta il: 23/08/2021, 12:43 da BAT.)
Non c'è nulla di strano, il risultato fornito da LibreOffice è corretto in base alle regole delle operazioni in virgola mobile.
Il numeoro 0,47, risultato dell'operazione 241,47-241 non si può rappresentare in modo esatto usando l'aritmetica binaria in doppia precisione a 64 bit
Inserite per esempio in questa pagina il valore 0.47:
https://www.h-schmidt.net/FloatConverter/IEEE754.html
Per maggiori info vedere qui:
https://docs.oracle.com/cd/E19957-01/806...dberg.html
Per inciso, più i numeri decimali si avvicinano allo zero, maggiore è la precisione con cui è possibile rappresentarli, tuttavia la conversione dipende dal numero e dall'operazione che viene svolta. Tanto per dirne una, il numero 0,1 in aritmetica binaria è un numero perodico...
invece 0,125 (1/8) non lo è perché si può esprimenre come 2^(-3) ossia una potenza intera di 2
Probabilmente in applicativi diversi da LibreOffice vengono adottati metodi che rilevano questa condizione e fanno direttamente un arrotondamento.
Il mio blog: https://guidedibat.blogspot.com/
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE
Messaggi: 177
Discussioni: 9
Registrato: 29 Jul 2021
Come dice bat non c'è nulla di strano e non è un bug: anche Excel ha lo stesso comportamento.
Messaggi: 859
Discussioni: 87
Registrato: 18 Oct 2019
(23/08/2021, 12:40)BAT Ha scritto: Non c'è nulla di strano, il risultato fornito da LibreOffice è corretto in base alle regole delle operazioni in virgola mobile.
BAT, mi fido completamente di ciò che dici ma...
Se una calcolatrice da 5 euro non ha questo problema... Se una calcolatrice software freeware fa quella operazione senza fare una piega... a ma sembra assurdo che un foglio di calcolo non sia in grado di fare altrettanto.
(23/08/2021, 15:27)dead Ha scritto: Come dice bat non c'è nulla di strano e non è un bug: anche Excel ha lo stesso comportamento.
Non è la stessa cosa. In Excel (ma anche in OpenOffice) devi essere tu a forzare il livello di precisione per ottenere quella forma.
Bene per male è carità, male per bene è crudeltà
Messaggi: 862
Discussioni: 13
Registrato: 18 Oct 2019
(24/08/2021, 13:57)Blackstar Ha scritto: Se una calcolatrice da 5 euro non ha questo problema... Se una calcolatrice software freeware fa quella operazione senza fare una piega... a ma sembra assurdo che un foglio di calcolo non sia in grado di fare altrettanto.
il punto è che tecnicamente non è un bug ma il normale risultato di una operazione in virgola mobile a doppia precisione, in termini terra-terra, è quelle che esce così com'è dal registro della CPU dove viene immagazzinato il risultato del calcolo.
Ci sono tecniche per aggiustarla questa cosa, vedrai che presto o tardi la implementeranno
Il mio blog: https://guidedibat.blogspot.com/
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE