电话报帐,有一笔代发工资金额出错,相差1分钱.接到帐后查看发现仅代发一笔,一笔就出错!?,负责同志休息,查看转换格式的脚本文件,发现中间将金额由元转为分是由awk完成的,在此之前金额都无错,awk转换过后出错.
做测试排查:
/tmp _11> cat aa.txt 128.40 128.41 128.42 128.43 128.44 128.45 128.46 128.47 128.48 128.49 /tmp _11> awk '{printf "%d\n",$0*100}' aa.txt 12840 12841 12841 12843 12844 12844 12846 12847 12847 12849
|
发现awk在用printf输出时,出现了异常,在转换文件中便是此处出了错.猜测是浮点数运算时的益处,但是用print输出则一切正常,所以应该是printf输出取整出了错.
阅读(3099) | 评论(0) | 转发(0) |