Successivo: , Precedente: , Su: Stampare   [Contenuti][Indice]


5.4 Controllare l’output di numeri con 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.)