# How does normalization affect significant digits?

I would like to know how normalization affects significant digits. Starting with a dataset where features have wildly different scales and number of digits, I'd like to begin with min-max normalization and cut off insignificant digits. Which should I do first? Here's an example with random data.

Case 0: Starting data set.

[[    24.2890000000000015     32.5955000000000013     81.2960000000000065]
[  6801.0150000000003274   3900.4432000000001608   3300.7890999999999622]
[600001.2340000000549480 190001.0450000000128057 670000.6737000000430271]]

These were rounded to 5 decimal places but the representation doesn't
reflect that perfectly of course.


Applying min-max normalization yields:

[[0.0000000000000000 0.0000123981981898 0.0000850880737021]
[0.0101148729339684 0.0057855086963038 0.0048904710297620]
[0.8955195417352746 0.2835573914818911 1.0000000000000000]]

The starting dataset has insignificant digits, so I assume
the normalized set does as well.


Case 1: round to 5 significant digits, then normalize, then use all digits

[[0.00000000000000000000 0.00001239895695263495 0.00008508815926313482]
[0.01011486071619691930 0.00578545003402369546 0.00489049221666485161]
[0.89551860037505148782 0.28355611685749604334 1.00000000000000000000]]

Since the data were first rounded to significant digits, I would think all
digits are now significant.  It's a difference in scale, not accuracy of
measurement?


Case 2: normalize, then round to 5 significant digits

[[0.00000000000000000000 0.00001239800000000000 0.00008508800000000001]
[0.01011500000000000073 0.00578549999999999984 0.00489050000000000075]
[0.89551999999999998270 0.28355999999999997874 1.00000000000000000000]]
But perhaps I'm wrong, and the numbers should be trimmed after normalization?


The differences between the Cases 0 and 1 are much more apparent with thousands of rows and columns and greater differences in scale. They might be small differences but that matters when the range is small...

• I lost you at the outset: the precision doesn't change when normalizing unless you are dividing by, or creating, values close to the limits of double-precision computing (around $10^{\pm 303}$). Could you therefore explain what you mean by "precision"?
– whuber
Mar 12 '20 at 16:45
• Sorry, I do tend to over complicate things. I simplified and rewrote the question with a concrete example. Thanks! Mar 13 '20 at 21:09
• There's something strange about your example, because it is obvious the original data were not rounded to five significant figures: sig figs are not interchangeable with decimal places!
– whuber
Mar 13 '20 at 22:04
• @whuber well that's kind of the point. I'm starting with data that hasn't been adjusted for significant figures, and needs to be normalized. I just rounded the example to make the effect of floating point representation, and the increase in digits after normalization, clearer. The question is "round then normalize" or "normalize then round"? Mar 14 '20 at 9:46