Float keeps automatically rounding to 100mil

I have a float (yes, it has to be a float so math elsewhere works correctly), that, at a certain point in my code is set to exactly 99,999,999 and then converted to a string.
I’m using number = 99999999 and then .ToString(“#,##0”)
The inspector displays 1E+08, so it seems to be that any number close to 100mil is automatically set to 100mil. Any way to fix this?

You should look up significant digits and watch this computerphile video on floating point numbers.

Depending on the source and use of your number you could simply use a double instead of a float. However even a double has more significant digits it will eventually run out of them as well.