OFMT内置变量仅在NAWK和GAWK里可用。
当一个数字被转换成一个串进行打印, AWK使用OFMT格式来决定如何进行打印的值。默认值是“% 0.6g”,这将打印总共6个字符,包括在小数点的两侧。
当使用g时,你必须计算小数点两侧的所有字符。例如,“% 0.4g”是指总的4个字符将打印,包括小数点的两侧的字符。
当使用了f时,你是只计算小数点右侧的字符。例如,“%.4f ”是指小数点右侧4个字符将被印。在小数点左侧总字符在这里无关紧要。
下面ofmt.awk例子显示,当使用不同的OFMT值(g和f),如何打印输出的:
$ cat ofmt.awk
BEGIN {
total=143.123456789;
print "---using g----";
print "Default OFMT:", total;
OFMT="%.3g";
print "%.3g OFMT:", total;
OFMT="%.4g";
print "%.4g OFMT:", total;
OFMT="%.5g";
print "%.5g OFMT:", total;
OFMT="%.6g";
print "%.6g OFMT:", total;
print "---using f---";
OFMT="%.0f";
print "%.0f OFMT:", total;
OFMT="%.1f";
print "%.1f OFMT:", total;
OFMT="%.2f";
print "%.2f OFMT:", total;
OFMT="%.3f";
print "%.3f OFMT:", total;
}
$ awk -f ofmt.awk
---using g----
Default OFMT: 143.123
%.3g OFMT: 143
%.4g OFMT: 143.1
%.5g OFMT: 143.12
%.6g OFMT: 143.123
---using f---
%.0f OFMT: 143
%.1f OFMT: 143.1
%.2f OFMT: 143.12
%.3f OFMT: 143.123