[Gfoss] Grass double precision field

a.furieri a lqt.it a.furieri a lqt.it
Mer 28 Nov 2012 13:14:11 CET


On Wed, 28 Nov 2012 11:44:37 +0000 (GMT), Marco Guiducci wrote:
> Il valore dell'area calcolata di è di 0.999021.
> Questo valore lo posso leggere sia da QGis, sia dalla gui di grass,
> sia da shell, ovviamente.
> Domanda: essendo il campo un double precision (lungo 20), mi sarei
> aspettato di leggere più decimali (perché mi occorrono più decimali
> per discriminare i poligoni in base alla loro superficie).
>

Marco,

le variabili "double precision" sono numeri binari a virgola mobile
conformi allo standard IEEE 754:
http://it.wikipedia.org/wiki/IEEE_754

come puoi vedere, proprio in quanto "a virgola mobile", non hanno
un numero predeterminato di cifre intere e decimali, dipende tutto
dal valore che viene effettivamente memorizzato.
approssimativamente, la somma delle cifre decimali e di quelle
intere e' 17 o 18 (non aspettarti un valore esatto, perche' essendo
un formato binario non ha un'esatta corrispondenza in base10)

dato che per qualsiasi sw e' del tutto impossibile sapere a priori
quante cifre decimali (precisione) sono effettivamente disponibili,
si usa sempre visualizzare una rappresentazione approssimativa ed
arrotondata che utilizza un numero limitato di cifre decimali:
tipicamente 4 oppure 6, molto piu' raramente 8.

questo non significa affatto che il valore memorizzato internamente
abbia subito un troncamento: e' semplicemente la visualizzazione che
avviene in modo arrotondato, sia per consentire un piu' agevole
allineamento delle cifre in colonna, sia per evitare di esporre un
numero esagerato di decimali poco significativi.

insomma, non e' affatto un problema di GRASS; e' semplicemente una
specie di "convenzione standard" adottata universalmente da qualsiasi
sw che si trovi a dovere visualizzare/stampare valori floating point.

ciao Sandro

-- 
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.



Maggiori informazioni sulla lista Gfoss