I still don't quite grok how you get those 8.5 digits (or where they are coming from). Reading my HP 34401A while measuring an AD588 reference using default configuration (10NPLC) the last two digits are always 0 (hence 7.5 digits, not necessarily 20 million discrete values):
+1.00014400E+01,+1.00014500E+01,+1.00014400E+01,+1.00014500E+01,+1.00014500E+01,+1.00014500E+01,+1.00014400E+01,+1.00014400E+01,+1.00014500E+01,+1.00014400E+01,+1.00014400E+01,+1.00014500E+01,+1.00014500E+01,+1.00014500E+01,+1.00014400E+01,+1.00014400E+01,+1.00014400E+01,+1.00014500E+01,+1.00014400E+01,+1.00014500E+01,+1.00014400E+01,+1.00014500E+01,+1.00014400E+01,+1.00014400E+01,+1.00014400E+01
For comparison, I measured the same reference at the same time (*) using a Datron-Wavetek 1271:
HP34401A 10 NPLC mean of 25 rdgs: 10.0014444 variance: 2.46399999981e-11
DW1271 fast mode mean of 25 rdgs: 10.001369164 variance: 2.50304000168e-13
Using NPLC of 100, still the last two digits are 0 [edit: this might have been due to an error in programming the DUT]:
+1.00013300E+01,+1.00013200E+01,+1.00013300E+01,+1.00013200E+01,+1.00013400E+01,+1.00013400E+01,+1.00013400E+01,+1.00013300E+01,+1.00013300E+01,+1.00013400E+01,+1.00013300E+01,+1.00013200E+01,+1.00013400E+01,+1.00013300E+01,+1.00013200E+01,+1.00013500E+01,+1.00013300E+01,+1.00013400E+01,+1.00013300E+01,+1.00013300E+01,+1.00013300E+01,+1.00013300E+01,+1.00013300E+01,+1.00013400E+01,+1.00013300E+01
HP34401A 100NPLC mean of 25 rdgs: 10.001332 variance: 5.60000000063e-11
DW1271 normal mode mean of 25 rdgs: 10.001369256 variance: 1.54464000023e-13
*) Even in 'fast' mode, the 1271 is much slower than the 34401A. The test series only started at about the same time (block read to memory on both).