summarising totals in awk

awk '
FILENAME == "all"    { balance[substr($0,14,3)] += substr($0,17,13)
                       dt = substr($0,6,8)  }
END                       { for ( name in balance )
    printf("%013s %3s of %8s\n", balance[name]/100,name,dt) | "sort "
} ' all > summation

using this code i wanted to take summary totals of
different categories.

for large amounts i could not get desired results

sample result is like this:
0000001065456 5CR of 18042008
0000014860090 2CR of 18042008
0001.3641e+07 2DR of 18042008
001.49954e+08 3CR of 18042008
002.29408e+08 4CR of 18042008
002.42195e+08 4DR of 18042008
006.79463e+07 3DR of 18042008

any help please....

hi paresh,

Can u provide sample data...

0000 180420082cr00004125616000000000000000018042008 0015
0000 180420082cr00000350855000000000000000018042008 0016
0000 180420082cr00000024629000000000000000018042008 0017
0000 180420082cr00000030846000000000000000018042008 0018
0000 180420082cr00000005098000000000000000018042008 0019
0000 180420082cr00000238180000000000000000018042008 0020
0000 180420082cr00000120089000000000000000018042008 0021
0000 180420082cr00000007061000000000000000018042008 0022
0000 180420082cr00001006775000000000000000018042008 0023
0000 180420082cr00000148528000000000000000018042008 0024
0000 180420082cr00000186099000000000000000018042008 0025
0000 180420082cr00000036106000000000000000018042008 0026
0000 180420082cr00000055062000000000000000018042008 0027
0000 180420082cr00000071755000000000000000018042008 0028
0000 180420082cr00000389249000000000000000018042008 0029
0000 180420082cr00000004845000000000000000018042008 0030
0000 180420082cr00002000000000000000000000018042008 0031
0000 180420082cr00000004568000000000000000018042008 0032
0000 180420082cr00000024784000000000000000018042008 0033
0000 180420082cr00000725673000000000000000018042008 0034
0000 180420082cr00000260800000000000000000018042008 0035
0000 180420082cr00000116708000000000000000018042008 0036
0000 180420082cr00000211000000000000000000018042008 0037

Try this one

awk '
FILENAME == "all" { balance[substr($0,14,3)] += substr($0,17,13)
dt = substr($0,6,8) }
END { for ( name in balance )
printf("%13.0lf %3s of %8s\n", balance[name]/100,name,dt) | "sort "
} ' all > summation