You keep reading the wrong things. Did you try reading the documentation for the NumberFormatInfo, which implements IFormatProvider? You don't even need to specify this for numeric types in string.Format (or any other formatting method like Console.WriteLine). There's also a big section on formatting in the .NET Framework SDK, which should be your first stop for .NET-related documentation, articles, and examples. There is a simple solution for the scientific notation:
string s = string.Format("{0:e}", myNum);
// OR
s = myNum.ToString("e"); // Also documented in numeric type's ToString docs
Microsoft MVP, Visual C# My Articles