我有一个脚本,它读取一个分隔文件并为每条记录添加文件中的第三个元素。对于大多数数据文件,这工作正常,除了一个。我有一个数据文件,数据文件中有 193 条记录。我期待从脚本中得到 2028219.43 。相反,我得到一个指数数字,似乎已经四舍五入。起初我以为通过使用 printf 我会得到这个数字,但如果这个数字已经四舍五入,那么它不会给我我所期望的。
这是我用来读取分隔数据文件的代码。每条记录中的数据由 *. 分隔:
export clm_total=$( awk -F* '{f1+=$3} END {print f1}' datafile.dat)
export new_clm_total=$(printf "%.2f" $clm_total)
这是我运行脚本时在日志中显示的内容:
+ export clm_total=2.02822e+06
+ printf %.2f 2.02822e+06
+ export new_clm_total=2028220.00
+ echo 2028220.00
这是数据文件的示例。记录比较多,没想到要全部显示193条记录:
CLM*123456789*4820.9***13:A:1**A*Y*Y
CLM*123698547*3642.05***13:A:7**A*Y*Y
CLM*147852369*579.25***13:A:1**A*Y*Y
CLM*789654123*929.8***13:A:1**A*Y*Y
我期待回来的是 2028219.43
我得到的是 2.02822e+06
然后将其格式化为 2028220.00