[Gfoss] Grass double precision field

Marco Guiducci marcoguiducci a ymail.com
Mer 28 Nov 2012 13:50:24 CET



----- Messaggio originale -----
> Da: "a.furieri a lqt.it" <a.furieri a lqt.it>
> A: gfoss a lists.gfoss.it
> Cc: 
> Inviato: Mercoledì 28 Novembre 2012 13:14
> Oggetto: Re: [Gfoss] Grass double precision field
> 
> 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.
> 

ok, quel che dici non mi è nuovo.
Sto solo cercando un sistema per vederli quei decimali, visto che ci sono :-)

per ora mi accontento di questo
v.out.ascii input=miobuffer dp=16 columns=Area

così vedo i valori dell'area di tutti i buffer, trovo la soglia che serve per poi fare una select. 

(serebbe più carino nelle gui, compreso QGis, un'opzione per vedere qualcosina di più ;-)
Purtroppo si lavora con buffer di 40 cm su punti distanti pochi centimetri, ma con coordinate a 7 cifre sulla parte intera :-(

grazie
marco


Maggiori informazioni sulla lista Gfoss