Board logo

标题: [问题求助] [已解决]gawk命令第一列+0.5为什么数据位数不对了 [打印本页]

作者: tommytangtang    时间: 2014-8-17 20:39     标题: [已解决]gawk命令第一列+0.5为什么数据位数不对了

用下列代码处理的时候遇到个问题
  1. @gawk "NR>0{print $1+0.5,$2+0.3,$3}" 123.txt>123a.txt
复制代码
123.txt
513621.937 2366583.053 8.985
513622.048 2366692.578 3.709
513622.209 2366693.253 4.685
123a.txt
513622 2.36658e+006 8.985
513623 2.36669e+006 3.709
513623 2.36669e+006 4.685
为什么变成这样了,我只是要他加个常数。。。
作者: tommytangtang    时间: 2014-8-17 20:52

还是说批处理中数值默认只有6位数吗
作者: terse    时间: 2014-8-17 22:33

  1. @gawk "NR>0{printf \"%%.3f %%.3f %%s \n\",$1+0.5,$2+0.3,$3}" 123.txt
复制代码

作者: tommytangtang    时间: 2014-8-17 22:51

回复 3# terse


    谢谢,运行正确了,看来还是要format他才行
作者: CrLf    时间: 2014-8-17 23:14

小数的格式由 OFMT 变量控制:
  1. echo 123|gawk -vOFMT="%.10f" "{print $1+0.44444}"
复制代码

作者: 523066680    时间: 2014-8-17 23:47

论坛首页出现一个空标题,好强大……
作者: CrLf    时间: 2014-8-18 00:21

回复 6# 523066680


    因为没过滤 $0~$9、$' $` 等特殊符号,所以替换的时候就...




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2