Successivo: Printf, Precedente: Separatori di output, Su: Stampare [Contenuti][Indice]
print
Quando si stampano valori numerici con l’istruzione print
,
awk
converte internamente ogni numero in una stringa di caratteri
e stampa quella stringa. awk
usa la funzione sprintf()
per effettuare questa conversione
(vedi la sezione Funzioni di manipolazione di stringhe).
Per ora, basta dire che la funzione sprintf()
accetta una specifica di formato che indica come formattare
i numeri (o le stringhe), e che ci sono svariati modi per formattare i
numeri. Le differenti specifiche di formato sono trattate più
esaurientemente
in
Lettere di controllo del formato.
La variabile predefinita OFMT
contiene la specifica di formato
che print
usa con sprintf()
per convertire un numero in
una stringa per poterla stampare.
Il valore di default di OFMT
è "%.6g"
.
Il modo in cui print
stampa i numeri si può cambiare
fornendo una specifica di formato differente
per il valore di OFMT
, come mostrato nell’esempio seguente:
$ awk 'BEGIN { > OFMT = "%.0f" # Stampa numeri come interi (arrotonda) > print 17.23, 17.54 }' -| 17 18
Per lo standard POSIX, il comportamento di awk
è indefinito
se OFMT
contiene qualcosa di diverso da una specifica di conversione
di un numero in virgola mobile.
(a.b.)