Significant Figures Formatting.00
int e = 0;



You're initializing e to default(int), which is redundant. This would be enough:

int e;


I'm not quite sure why you're incrementing e like this:


while (number &gt;= 10.0)
{
    e += 1;
    number /= 10;
}



Why not just e++;?

And same thing here:


while (e &gt; 0)
{
    number *= 10;
    e -= 1;
}



There's e--; to decrement.

But you know this already:


figures--;



Why? Why are you using both -= 1 and -- in the same method?


figures += 0 - e;



Looks like a pretty convoluted way to do figures -= e;.

And then we get to the return value...


return number.ToString($"f{figures}");



You're using C# 6.0 string interpolation here. A format string. The SO question you linked to has an accepted answer that uses a format string to do all the work: it seems string.Format("{0:G10}", number) would do the formatting part just right - I'd parameterize the length by making a method that builds a format string from the parameter (something like "{0:G" + digits + "}"), and uses that format string to return the formatted string.

I think it would be easier to read and to follow, than the whole logic you got there.

Or, don't use a format string. IMO using a formatted string here defeats the purpose of reinventing the wheel.