数学問題
計算結果が awk だけ異なると言うものです。
$ echo "111111111 * 111111111" | bc -l 12345678987654321 $ perl -le 'print 111111111 * 111111111' 12345678987654321 $ python -c "print 111111111 * 111111111" 12345678987654321 (bash/zsh - same results) $ echo $((111111111 * 111111111)) 12345678987654321 $ awk 'BEGIN {printf "%.0f", '"111111111 * 111111111"'}' 12345678987654320
いろいろ試した結果が載っていて興味深いです。
on cygwin on Windows XP: $ gawk 'BEGIN {print (111111111*111111111); exit}' 12345678987654320 on Solaris: $ /usr/bin/awk 'BEGIN {print (111111111*111111111); exit}' 12345678987654320 $ nawk 'BEGIN {print (111111111*111111111); exit}' 12345678987654320 $ /usr/xpg4/bin/awk 'BEGIN {print (111111111*111111111); exit}' 12345678987654321 $ gawk 'BEGIN {print (111111111*111111111); exit}' 1.23457e+16 $ gawk 'BEGIN {printf "%.0f\n", (111111111*111111111); exit}' 12345678987654320
mawk, nawk もダメなので、Linux 上だと xgawk だけ?