为什么gawk printf会给出错误的圆形结果?

时间:2018-01-29 07:46:41

标签: awk printf gawk

gawk的$json = json_decode($content_programma, true); $Poulecode = array_column($json, 'poulecode'); $Teamnaam = array_column($json, 'teamnaam'); $findme = 'voorjaar'; $key = array_filter($findme, array_column($json, $Teamnaam)); $competitiecode = $Poulecode[$key]; 功能可以使用,例如:

printf

它给了我:

gawk 'BEGIN { x=(57.3/6); printf("Result : \n\t%.0f\n\t%.1f\n\t%.2f\n\t%.3f\n",x, x,x,x) }'

显然,第二个结果是错误的,它应该是 9.6

我的Gawk版本是:

    Result :
        10
        9.5
        9.55
        9.550

C版$ gawk --version GNU Awk 4.0.1 Copyright (C) 1989, 1991-2012 Free Software Foundation. 执行正常:

printf

1 个答案:

答案 0 :(得分:1)

最后,我从gawk mannual发现了这个:

How Round function works.

看起来应该编写自己的rounding,因为默认的printf执行取决于系统的C sprintf()子程序,类似.5将会转到偶数,而不是总是比起来。