16.8 Sommario
- La maggior parte dell’aritmetica al calcolatore è fatta usando numeri interi
oppure
valori in virgola mobile. L’
awk
standard usa valori in virgola mobile
a doppia precisione.
- Nei primi anni ’90 Barbie disse erroneamente, “L’ora di matematica è
ostica!” Sebbene la matematica non sia ostica, l’aritmetica in virgola
mobile non è proprio come la
matematica “carta e penna”, e bisogna prestare attenzione:
- - Non tutti i numeri possono essere rappresentati in modo esatto.
- - Per confrontare dei valori bisognerebbe usare un delta, invece di farlo
direttamente con ‘==’ e ‘!=’.
- - Gli errori si accumulano.
- - Le operazioni non sempre sono esattamente associative o distributive.
- Aumentare l’accuratezza può essere d’aiuto, ma non è una panacea.
- Spesso, aumentare la precisione e poi arrotondare al numero di cifre
desiderato produce risultati soddisfacenti.
- Specificare l’opzione -M (o --bignum) per abilitare
il calcolo MPFR.
Usare
PREC
per impostare la precisione in bit, e
ROUNDMODE
per impostare la modalità di arrotondamento tra quelle
previste nello standard IEEE 754.
- Specificando l’opzione -M,
gawk
esegue calcoli su interi a precisione
arbitraria usando la libreria GMP. In tal modo si ha una maggiore velocità e
una più efficiente allocazione dello spazio rispetto all’uso di MPFR per
eseguire gli stessi calcoli.
- Ci sono diverse aree per quanto attiene ai numeri in virgola mobile in cui
gawk
è in disaccordo con lo standard POSIX.
È importante averlo ben presente.
- In generale, non vi è alcun bisogno di essere eccessivamente diffidenti verso i
risultati del calcolo in virgola mobile. La lezione da ricordare è che
il calcolo in virgola mobile è sempre più complesso di quello che si fa con
carta e penna. Per trarre vantaggio dalla potenza del calcolo in virgola
mobile, bisogna conoscere i suoi limiti e stare all’interno di essi.
Per la maggior parte degli usi occasionali del calcolo in virgola mobile, si
possono ottenere i risultati attesi semplicemente arrotondando la
visualizzazione dei risultati finali al giusto numero di cifre decimali
significative.
- Come consiglio generale, evitare di rappresentare dati numerici in maniera
tale da far sembrare che la precisione sia maggiore di quella effettivamente
necessaria.