With a quick test C#'s currency format doesn't appear to support optional decimal places.
CultureInfo ci = new CultureInfo("en-US");
String.Format(ci, "{0:C2}", number); // Always 2 decimals
String.Format(ci, "{0:C6}", number); // Always 6 decimals
Trying to customize it doesn't work.
String.Format(ci, "{0:C0.00####}", number); // two decimals always, 4 optional
Is it possible to use the currency format with an optional number of decimals?
e.g. $199.99 or $0.009999 or $5.00 are shown like this.