perhaps you could treat the exponents as a seperate number, so rather (example only) having " 1.9816e-36" as number, you could have "1.9816" and "-36" as numbers. When the first number gets too large or too small, you then change the second number by a preferred magnitude like 9. Then you could assign the second number different names for various small and large units.
But I can't code at all so I don't know how complicated it would be to implement something like that.

If you level up one thing 20 times, then another 20 times but do it differently for the next factory within the same battle, you'll see that the first-upgraded stat is lower than the other factory.