You need to set the Culture setting in the String.Format method. It seems to use en-us by default.
You would need to use something along the lines of:
String.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:C}", 12.99);
This will set the format template to whatever system regional settings are for this format command.